avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

سنگل پلیٹ فارم توازن کی حکمت عملی کا ازگر ورژن

میں تخلیق کیا: 2020-02-05 10:02:03, تازہ کاری: 2023-10-12 21:20:47
comments   1
hits   2701

سنگل پلیٹ فارم توازن کی حکمت عملی کا ازگر ورژن

سنگل پلیٹ فارم توازن کی حکمت عملی کا ازگر ورژن

جاوا اسکرپٹ ورژن

حکمت عملی کا پتہ: https://www.fmz.com/strategy/345

اس مضمون میں، آئیے ایک سادہ JavaScript حکمت عملی کو پورٹ کرنے کی مشق کریں۔ حکمت عملیوں کو ٹرانسپلانٹ کرنے سے، آپ انوینٹر کوانٹیٹیو ٹریڈنگ پلیٹ فارم انٹرفیس کی کالوں سے زیادہ واقف ہو جائیں گے اور پلیٹ فارم پر حکمت عملی تیار کرتے وقت مختلف زبانوں کے درمیان معمولی فرق کو سمجھیں گے، درحقیقت JavaScript ورژن کی حکمت عملی اور Python ورژن کے درمیان فرق حکمت عملی بہت چھوٹی ہے کیونکہ انٹرفیس کالز بنیادی طور پر ایک جیسی ہیں۔

حکمت عملی کی تفصیل

ہدایات کے جاوا اسکرپٹ ورژن سے حوالہ دیتے ہوئے:

اس کے لیے پوزیشن کھولنے کی ضرورت ہے، مثال کے طور پر، اگر اکاؤنٹ میں 5,000 یوآن اور 1 سکہ ہے، اگر سکے کی قیمت اکاؤنٹ بیلنس 5,000 سے زیادہ ہے اور قیمت کا فرق حد سے زیادہ ہے، مثال کے طور پر، سکے کی قیمت اب 6000 ہے۔ یوآن، پھر (6,000-5,000)/6,000/2 سکے بیچیں، اس کا مطلب ہے کہ سکے کی قدر ہو گئی ہے، رقم واپس کر دیں، مثال کے طور پر، 4000 یوآن، خریدیں (5000-4000)/4000/2۔ سکے، سکہ گرنے پر کچھ واپس خریدیں، اگر یہ دوبارہ اوپر جاتا ہے، تو میں اسے دوبارہ بیچ دوں گا، بالکل بیلنس کی طرح، جس کے دونوں طرف مختلف ہیجز ہیں، اس لیے میں نے اسے متوازن حکمت عملی کا نام دیا۔

حکمت عملی کا اصول بہت آسان ہے، اور کوڈ کا جاوا اسکرپٹ ورژن لمبا نہیں ہے، صرف 70 لائنوں سے زیادہ ہے۔ مزید جامع نحو کے ساتھ ازگر کی زبان کی حکمت عملی میں ٹرانسپلانٹ کیا گیا، یہ کوڈ ابتدائی افراد کے سیکھنے کے لیے بہت موزوں ہے، موجد مقداری تجارتی پلیٹ فارم پر ڈویلپرز کے اشتراک کردہ بہت سے کوڈز ہیں، اور زبان اس کی حمایت کرتی ہے۔JavaScript/C++/Pythonوغیرہ، اس لیے ایک اور ترقیاتی زبان پر عبور حاصل کرنا نہ صرف سیکھنے، تحقیق اور ترقی کی حکمت عملیوں کے لیے مددگار ہے، بلکہ آپ کو پلیٹ فارم کے مختلف API انٹرفیس سے زیادہ واقف ہونے کی بھی اجازت دیتا ہے۔

حکمت عملی کوڈ

'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''

InitAccount = None

def CancelPendingOrders():
    ret = False
    while True:
        orders = _C(exchange.GetOrders)
        if len(orders) == 0 :
            return ret

        for j in range(len(orders)):
            exchange.CancelOrder(orders[j].Id)
            ret = True
            if j < len(orders) - 1:
                Sleep(Interval)
    return ret 

def onTick():
    acc = _C(exchange.GetAccount)
    ticker = _C(exchange.GetTicker)
    spread = ticker.Sell - ticker.Buy
    diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2
    ratio = diffAsset / acc.Balance
    LogStatus("ratio:", ratio, _D())
    if abs(ratio) < threshold:
        return False
    if ratio > 0 :
        buyPrice = _N(ticker.Sell + spread, ZPrecision)
        buyAmount = _N(diffAsset / buyPrice, XPrecision)
        if buyAmount < MinStock:
            return False
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio)
    else :
        sellPrice = _N(ticker.Buy - spread, ZPrecision)
        sellAmount = _N(-diffAsset / sellPrice, XPrecision)
        if sellAmount < MinStock:
            return False 
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio)
    return True

def main():
    global InitAccount, LoopInterval
    InitAccount = _C(exchange.GetAccount)
    LoopInterval = max(LoopInterval, 1)
    while True:
        if onTick():
            Sleep(1000)
            CancelPendingOrders()
            Log(_C(exchange.GetAccount))
        Sleep(LoopInterval * 1000)

کوڈ سے شروع ہوتا ہے۔

'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''

یہ بیکٹیسٹ کنفیگریشن ہے، جس کا مطلب ہے کہ بیکٹیسٹ کنفیگریشن (ترتیبات) کوڈ کی صورت میں محفوظ کی جاتی ہیں، اور بیک ٹیسٹ خود بخود اس ترتیب کے مطابق ترتیب دیا جاتا ہے۔ اس حصے کو حذف کیا جا سکتا ہے اگر اسے حذف کر دیا جاتا ہے، تو آپ کو بیک ٹیسٹنگ کے دوران بیک ٹیسٹ صفحہ پر بیکٹیسٹ کنفیگریشن کی معلومات کو دستی طور پر سیٹ کرنا ہوگا۔ حوالہ: https://www.fmz.com/bbs-topic/859

اس حکمت عملی کے پیرامیٹرز بالکل اسی طرح کے ہیں جیسے کہ اسٹریٹیجی کوڈ کو جملے کے لحاظ سے ٹرانسپلانٹ کیا گیا ہے، اور پروگرام کا ڈھانچہ مختلف میں لکھی گئی حکمت عملیوں کے درمیان فرق دیکھنے کے لیے ان کا جملے سے موازنہ کر سکتے ہیں۔ زبانیں

بیک ٹیسٹنگ

پیرامیٹر کی ترتیب سنگل پلیٹ فارم توازن کی حکمت عملی کا ازگر ورژن

شماریات سنگل پلیٹ فارم توازن کی حکمت عملی کا ازگر ورژن

سنگل پلیٹ فارم توازن کی حکمت عملی کا ازگر ورژن

حکمت عملی کا پتہ: https://www.fmz.com/strategy/183374

حکمت عملی صرف حوالہ، بیک ٹیسٹنگ اور جانچ کے لیے ہے، اگر آپ دلچسپی رکھتے ہیں، تو آپ اسے بہتر اور اپ گریڈ کر سکتے ہیں۔