وسائل لوڈ ہو رہے ہیں... لوڈنگ...

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

مصنف:FMZ~Lydia, تخلیق: 2022-12-02 21:38:52, تازہ کاری: 2023-09-20 11:14:48

img

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

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

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

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

جاوا اسکرپٹ ورژن سے نقل کردہ تفصیل:

اس کے لئے پوزیشن کھولنے کی ضرورت ہے۔ مثال کے طور پر اگر اکاؤنٹ میں 5000 یوآن اور ایک کرنسی ہے ، اگر کرنسی کی قیمت اکاؤنٹ بیلنس 5000 یوآن سے زیادہ ہے اور قیمت کا فرق حد سے زیادہ ہے ، مثال کے طور پر ، اگر کرنسی کی قیمت اب 6000 یوآن ہے تو ، پھر (6000-5000) / 6000/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

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

بیک ٹسٹنگ

پیرامیٹر کی ترتیب

img

شماریات

img img

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

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


متعلقہ

مزید