শুধু শেখার জন্য, আসল বাজারে ব্যবহার করার সময় সাবধানে থাকুন।
শুধুমাত্র ডিজিটাল মুদ্রা বিনিময় উপর চালানো.
দ্রষ্টব্যঃ এই কৌশলটি টেমপ্লেট অন্তর্ভুক্ত।
নতুনরা এই কৌশল দিয়ে শুরু করতে পারে, কোডিং শিখতে পারে, ব্যাকটেস্টিং এবং বাস্তব বাজারের মধ্যে পার্থক্য জানতে পারে।
/*backtest start: 2020-10-11 00:00:00 end: 2020-10-11 23:59:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ start = false function main() { Log('started'); var initAccount = _C(exchange.GetAccount); var ticker = exchange.GetTicker(); var InitValue = (initAccount.Stocks + initAccount.FrozenStocks)*ticker.Last + initAccount.Balance + initAccount.FrozenBalance; while (true) { var records = _C(exchange.GetRecords, PERIOD_M15); if(!start){ Log(records[0], records.length) start = true } ticker =_C(exchange.GetTicker); var FastRecords = TA.MA(records,FastPeriod); var SlowRecords = TA.MA(records,SlowPeriod); var NowAccount = _C(exchange.GetAccount); var n = _Cross(FastRecords, SlowRecords); if (n >= EnterPeriod && NowAccount.Balance > 0) { var Price = _N(ticker.Sell+Slippage, 2); var Amount = _N(0.99*NowAccount.Balance/Price, 3); if(Amount>0.1){ var id = exchange.Buy(Price, Amount); if(exchange.GetOrders(id).Status == ORDER_STATE_PENDING){exchange.CancelOrder(id);} LogProfit((NowAccount.Stocks + NowAccount.FrozenStocks)*ticker.Last + NowAccount.Balance + NowAccount.FrozenBalance - InitValue); } } if(n <= -EnterPeriod && NowAccount.Stocks > 0) { var Price = _N(ticker.Buy-Slippage, 2); var Amount = _N(NowAccount.Stocks, 3); if(Amount>0.1){ var id = exchange.Sell(Price, Amount); if(exchange.GetOrders(id).Status == ORDER_STATE_PENDING){exchange.CancelOrder(id);} LogProfit((NowAccount.Stocks + NowAccount.FrozenStocks)*ticker.Last + NowAccount.Balance + NowAccount.FrozenBalance - InitValue); } } if(!IsVirtual()){ Sleep(Interval*1000) } } }
জিমিকে ভালোবাসি।exchange.GetOrders ((id).Status কি exchange.GetOrders ((id).type হওয়া উচিত?