import java.util.*; import java.util.zip.*; import java.util.List; import java.util.regex.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.concurrent.locks.*; import java.util.function.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.table.*; import java.io.*; import java.net.*; import java.lang.reflect.*; import java.lang.ref.*; import java.lang.management.*; import java.security.*; import java.security.spec.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.awt.geom.*; import javax.imageio.*; import java.math.*; import java.time.Duration; import java.lang.invoke.VarHandle; import java.lang.invoke.MethodHandles; class main { static class TradingSignal { final public TradingSignal setMarket(String market){ return market(market); } public TradingSignal market(String market) { this.market = market; return this; } final public String getMarket(){ return market(); } public String market() { return market; } String market; // set amount to negative value to close position final public TradingSignal setAmount(double amount){ return amount(amount); } public TradingSignal amount(double amount) { this.amount = amount; return this; } final public double getAmount(){ return amount(); } public double amount() { return amount; } double amount; // HoldSide.SHORT or HoldSide.LONG final public TradingSignal setHoldSide(HoldSide holdSide){ return holdSide(holdSide); } public TradingSignal holdSide(HoldSide holdSide) { this.holdSide = holdSide; return this; } final public HoldSide getHoldSide(){ return holdSide(); } public HoldSide holdSide() { return holdSide; } HoldSide holdSide; final public TradingSignal setLeverage(int leverage){ return leverage(leverage); } public TradingSignal leverage(int leverage) { this.leverage = leverage; return this; } final public int getLeverage(){ return leverage(); } public int leverage() { return leverage; } int leverage = 1; } enum HoldSide { SHORT, LONG } }