چلتی اوسط بوٹ 30 لائنیں

مصنف:گھاس، تاریخ: 2018-07-03 15:16:29
ٹیگز:رجحانمطالعہ

بات کرنا سستا ہے۔ مجھے کوڈ دکھاؤ

صرف سیکھنے کے لئے، حقیقی مارکیٹ میں استعمال کرتے وقت محتاط رہیں.

صرف ڈیجیٹل کرنسی تبادلے پر چلتا ہے.

نوٹ: اس حکمت عملی میں ٹیمپلیٹ شامل ہے.

beginners کے اس حکمت عملی کے ساتھ شروع کر سکتے ہیں، سیکھنے کے لئے کس طرح کوڈ، backtesting اور حقیقی مارکیٹ کے درمیان فرق جانتے ہیں.

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 ہونا چاہئے، ٹھیک ہے؟