চলমান গড় বট ৩০ লাইন

লেখক:ঘাস, তারিখঃ ২০১৮-০৭-০৩ ১৫ঃ১৬ঃ২৯
ট্যাগঃপ্রবণতাঅধ্যয়ন

কথা বলা সস্তা. আমাকে কোডটা দেখাও

শুধু শেখার জন্য, আসল বাজারে ব্যবহার করার সময় সাবধানে থাকুন।

শুধুমাত্র ডিজিটাল মুদ্রা বিনিময় উপর চালানো.

দ্রষ্টব্যঃ এই কৌশলটি টেমপ্লেট অন্তর্ভুক্ত।

নতুনরা এই কৌশল দিয়ে শুরু করতে পারে, কোডিং শিখতে পারে, ব্যাকটেস্টিং এবং বাস্তব বাজারের মধ্যে পার্থক্য জানতে পারে।

img


/*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 হওয়া উচিত?