Deals, but better because RGB
This commit is contained in:
parent
f05785d6d3
commit
d145695f1c
|
|
@ -331,7 +331,6 @@ public class InstanceInterface {
|
|||
for (int i = worker.getSoAmount(); i <= worker.getNumberOfSafetyOrders(); i++) {
|
||||
fundsNeeded += gibSoSize(worker.getOrderSize(),i,0.0105); // I know I know
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -353,7 +352,7 @@ public class InstanceInterface {
|
|||
}
|
||||
}
|
||||
|
||||
return new ExchangeStatsData(lastSeen,fundsAvailable,fundsNeeded,onlineWorkers,longWorkers,shortWorkers,instanceGlobalStats);
|
||||
return new ExchangeStatsData(lastSeen,fundsAvailable,fundsNeeded,onlineWorkers,longWorkers,shortWorkers,instanceGlobalStats,workers);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -453,6 +452,7 @@ public class InstanceInterface {
|
|||
}
|
||||
|
||||
valueToReturn.add(new WorkerStatsData(
|
||||
key,
|
||||
isShort,
|
||||
stopWhenProfit,
|
||||
orderSize,
|
||||
|
|
@ -721,8 +721,9 @@ public class InstanceInterface {
|
|||
private final int longWorkers;
|
||||
private final int shortWorkers;
|
||||
private final InstanceGlobalStatsData globalStats;
|
||||
private final List<WorkerStatsData> workers;
|
||||
|
||||
public ExchangeStatsData(double lastSeen, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers, InstanceGlobalStatsData globalStats) {
|
||||
public ExchangeStatsData(double lastSeen, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers, InstanceGlobalStatsData globalStats, List<WorkerStatsData> workers) {
|
||||
this.lastSeen = lastSeen;
|
||||
this.fundsAvailable = fundsAvailable;
|
||||
this.fundsNeeded = fundsNeeded;
|
||||
|
|
@ -730,6 +731,7 @@ public class InstanceInterface {
|
|||
this.longWorkers = longWorkers;
|
||||
this.shortWorkers = shortWorkers;
|
||||
this.globalStats = globalStats;
|
||||
this.workers = workers;
|
||||
}
|
||||
|
||||
public double getLastSeen() { return lastSeen; }
|
||||
|
|
@ -739,9 +741,11 @@ public class InstanceInterface {
|
|||
public int getLongWorkers() { return longWorkers; }
|
||||
public int getShortWorkers() { return shortWorkers; }
|
||||
public InstanceGlobalStatsData getGlobalStats() { return globalStats; }
|
||||
public List<WorkerStatsData> getWorkers() { return workers; }
|
||||
}
|
||||
|
||||
public static class WorkerStatsData {
|
||||
private final String pair;
|
||||
private final boolean isShort;
|
||||
private final boolean stopWhenProfit;
|
||||
private final double orderSize;
|
||||
|
|
@ -773,7 +777,8 @@ public class InstanceInterface {
|
|||
private final JsonObject oldLongDictionary; //Change type
|
||||
private final String statusString;
|
||||
|
||||
public WorkerStatsData(boolean isShort, boolean stopWhenProfit, double orderSize, double quoteSpent, double baseBought, int soAmount, int numberOfSafetyOrders, int tpMode, String profitTable, double startTime, double startPrice, double dealStartTime, double dealUptime, double totalUptime, double price, double takeProfitPrice, double nextSoPrice, String tpOrderId, JsonObject takeProfitOrder, String soOrderId, JsonObject safetyOrder, double feesPaidInBase, double feesPaidInQuote, double partialProfit, String safetyPriceTable, String dealOrderHistory, String pauseReason, JsonObject oldLong, String statusString) {
|
||||
public WorkerStatsData(String pair, boolean isShort, boolean stopWhenProfit, double orderSize, double quoteSpent, double baseBought, int soAmount, int numberOfSafetyOrders, int tpMode, String profitTable, double startTime, double startPrice, double dealStartTime, double dealUptime, double totalUptime, double price, double takeProfitPrice, double nextSoPrice, String tpOrderId, JsonObject takeProfitOrder, String soOrderId, JsonObject safetyOrder, double feesPaidInBase, double feesPaidInQuote, double partialProfit, String safetyPriceTable, String dealOrderHistory, String pauseReason, JsonObject oldLong, String statusString) {
|
||||
this.pair = pair;
|
||||
this.isShort = isShort;
|
||||
this.stopWhenProfit = stopWhenProfit;
|
||||
this.orderSize = orderSize;
|
||||
|
|
@ -805,6 +810,7 @@ public class InstanceInterface {
|
|||
this.statusString = statusString;
|
||||
}
|
||||
|
||||
public String getPair() {return pair; }
|
||||
public boolean getIsShort() { return isShort; }
|
||||
public boolean getStopWhenProfit() { return stopWhenProfit; }
|
||||
public double getOrderSize() { return orderSize; }
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
import com.example.dcav2gui.databinding.ActivityMainBinding;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
|
|
@ -41,6 +42,7 @@ public class MainActivity extends AppCompatActivity {
|
|||
this.homeViewCache = newCache;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
|
@ -60,8 +62,6 @@ public class MainActivity extends AppCompatActivity {
|
|||
|
||||
DrawerLayout drawer = binding.drawerLayout;
|
||||
NavigationView navigationView = binding.navView;
|
||||
// Passing each menu ID as a set of Ids because each
|
||||
// menu should be considered as top level destinations.
|
||||
mAppBarConfiguration = new AppBarConfiguration.Builder(
|
||||
R.id.nav_home,
|
||||
R.id.nav_binance,
|
||||
|
|
@ -75,12 +75,6 @@ public class MainActivity extends AppCompatActivity {
|
|||
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
|
||||
NavigationUI.setupWithNavController(navigationView, navController);
|
||||
|
||||
|
||||
// Check for settings file
|
||||
// if (!isSettingsFileExists()) {
|
||||
// Toast.makeText(this, "Please enter your credentials in the settings menu", Toast.LENGTH_LONG).show();
|
||||
// }
|
||||
|
||||
// Load settings
|
||||
SettingsViewModel settingsViewModel = new ViewModelProvider(this).get(SettingsViewModel.class);
|
||||
globalSettings = settingsViewModel.loadSettings(this);
|
||||
|
|
|
|||
|
|
@ -1,9 +1,15 @@
|
|||
package com.example.dcav2gui.ui.home;
|
||||
|
||||
import static androidx.core.content.res.ResourcesCompat.getColor;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
|
@ -12,6 +18,7 @@ import android.widget.ProgressBar;
|
|||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
|
@ -23,6 +30,7 @@ import com.example.dcav2gui.R;
|
|||
import com.example.dcav2gui.TickerTracker;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
|
@ -41,11 +49,6 @@ public class HomeFragment extends Fragment {
|
|||
private Handler handler = new Handler();
|
||||
private Runnable updateRunnable;
|
||||
|
||||
public List<InstanceInterface.WorkerStatsData> binanceWorkerStatsData;
|
||||
public List<InstanceInterface.WorkerStatsData> gateioWorkerStatsData;
|
||||
public List<InstanceInterface.WorkerStatsData> kucoinWorkersStatsData;
|
||||
public List<InstanceInterface.WorkerStatsData> okexWorkerStatsData;
|
||||
|
||||
private ProgressBar progressBar;
|
||||
private TextView progressBarText;
|
||||
private ScrollView mainHomeScrollView;
|
||||
|
|
@ -104,7 +107,10 @@ public class HomeFragment extends Fragment {
|
|||
private TextView log3Content;
|
||||
private TextView log4Content;
|
||||
|
||||
|
||||
// InstanceInterface.ExchangeStatsData binanceStats;
|
||||
// InstanceInterface.ExchangeStatsData gateioStats;
|
||||
// InstanceInterface.ExchangeStatsData kucoinStats;
|
||||
// InstanceInterface.ExchangeStatsData okexStats;
|
||||
|
||||
|
||||
|
||||
|
|
@ -526,6 +532,39 @@ public class HomeFragment extends Fragment {
|
|||
String kucoinLogs,
|
||||
String okexLogs) {
|
||||
|
||||
List<String> shortWorkers = new ArrayList<>();
|
||||
|
||||
//Populate short traders list
|
||||
if (binanceData != null && binanceData.getWorkers()!= null) {
|
||||
binanceData.getWorkers().forEach(worker -> {
|
||||
if (worker.getIsShort()) {
|
||||
shortWorkers.add(worker.getPair());
|
||||
}
|
||||
});
|
||||
}
|
||||
if (gateioData != null && gateioData.getWorkers()!= null) {
|
||||
gateioData.getWorkers().forEach(worker -> {
|
||||
if (worker.getIsShort()) {
|
||||
shortWorkers.add(worker.getPair());
|
||||
}
|
||||
});
|
||||
}
|
||||
if (kucoinData != null && kucoinData.getWorkers()!= null) {
|
||||
kucoinData.getWorkers().forEach(worker -> {
|
||||
if (worker.getIsShort()) {
|
||||
shortWorkers.add(worker.getPair());
|
||||
}
|
||||
});
|
||||
}
|
||||
if (okexData != null && okexData.getWorkers()!= null) {
|
||||
okexData.getWorkers().forEach(worker -> {
|
||||
if (worker.getIsShort()) {
|
||||
shortWorkers.add(worker.getPair());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
if (firstTickerChangeData!= null) {
|
||||
pricePair1.setText(String.format(Locale.ROOT, "%.2f", firstTickerChangeData.getCurrentPrice()));
|
||||
pricePair124hPercentage.setText(formatPercentage(firstTickerChangeData.getPriceChangePercent24h()));
|
||||
|
|
@ -691,23 +730,31 @@ public class HomeFragment extends Fragment {
|
|||
String longShortWorkers = String.valueOf(okexData.getLongWorkers()) + "/" + String.valueOf(okexData.getShortWorkers());
|
||||
exchange4WorkersLongShort.setText(longShortWorkers);
|
||||
}
|
||||
|
||||
int shortColor = ContextCompat.getColor(requireContext(), R.color.orange);
|
||||
int LongColor = ContextCompat.getColor(requireContext(), R.color.darker_cyan);
|
||||
if (dealData != null) {
|
||||
StringBuilder dealsList = new StringBuilder();
|
||||
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
|
||||
String dealsList = "";
|
||||
for (InstanceInterface.DealData deal : dealData) {
|
||||
String timestamp = timeStampConverter(deal.getTimestamp());
|
||||
String pair = deal.getPair();
|
||||
String amount = String.format(Locale.ROOT,"%.2f", deal.getAmount());
|
||||
String amount = String.format(Locale.ROOT, "%.2f", deal.getAmount());
|
||||
String exchange = Character.toUpperCase(deal.getExchangeName().charAt(0)) + deal.getExchangeName().substring(1);
|
||||
dealsList.append(timestamp)
|
||||
.append(" | ")
|
||||
.append(pair)
|
||||
.append(" | ")
|
||||
.append(amount)
|
||||
.append(" USDT | ")
|
||||
.append(exchange).append("\n");
|
||||
String dealString = timestamp + " | " + pair + " | " + amount + " USDT | " + exchange + "\n";
|
||||
SpannableString spannableString = new SpannableString(dealString);
|
||||
int startIndex = dealString.indexOf(pair);
|
||||
int endIndex = startIndex + pair.length();
|
||||
if ((startIndex != -1) && (endIndex != -1)) {
|
||||
//If pair in shortWorkers, set color to yellow, else cyan
|
||||
if (shortWorkers.contains(pair)) {
|
||||
spannableString.setSpan(new ForegroundColorSpan(shortColor), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
} else {
|
||||
spannableString.setSpan(new ForegroundColorSpan(LongColor), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
spannableStringBuilder.append(spannableString);
|
||||
}
|
||||
lastTrades.setText(dealsList);
|
||||
lastTrades.setText(spannableStringBuilder);
|
||||
}
|
||||
|
||||
//Populate logs
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@
|
|||
<color name="blue">#FF0000FF</color>
|
||||
<color name="yellow">#FFFFFF00</color>
|
||||
<color name="grey">#FF424242</color>
|
||||
|
||||
<color name="orange">#FFA500</color>
|
||||
<color name="darker_cyan">#008B8B</color>
|
||||
<color name="secondary_text_color">#FF424242</color>
|
||||
<color name="card_background_color">#FFF6F6F6</color>
|
||||
<color name="stroke_color">#FF000000</color>
|
||||
|
|
|
|||
Loading…
Reference in New Issue