রিসোর্স লোড হচ্ছে... লোডিং...

পাইথন সংস্করণের একক প্ল্যাটফর্ম ভারসাম্য কৌশল

লেখক:এফএমজেড-লিডিয়া, সৃষ্টিঃ ২০২২-১২-০২ ২১ঃ৩৮ঃ৫২, আপডেটঃ ২০২৩-০৯-২০ ১১ঃ১৪ঃ৪৮

img

জাভাস্ক্রিপ্ট সংস্করণ

কৌশল ঠিকানাঃhttps://www.fmz.com/strategy/345

এই নিবন্ধে, আসুন একটি সহজ জাভাস্ক্রিপ্ট কৌশল পোর্টিং অনুশীলন করি। কৌশল পোর্টিংয়ের মাধ্যমে, আমরা এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম ইন্টারফেসের কলের সাথে আরও পরিচিত হতে পারি এবং প্ল্যাটফর্ম বিকাশের কৌশলতে বিভিন্ন ভাষার মধ্যে সামান্য পার্থক্য বুঝতে পারি। আসলে, জাভাস্ক্রিপ্ট সংস্করণ এবং পাইথন সংস্করণের মধ্যে পার্থক্য খুব সামান্য, কারণ ইন্টারফেস কলগুলি মূলত একই।

কৌশল বর্ণনা

জাভাস্ক্রিপ্ট সংস্করণ থেকে উদ্ধৃত বর্ণনাঃ

এটি একটি অবস্থান খুলতে প্রয়োজন। উদাহরণস্বরূপ, যদি অ্যাকাউন্টে 5000 ইউয়ান এবং একটি মুদ্রা থাকে, যদি মুদ্রার মান 5000 ইউয়ান অ্যাকাউন্ট ব্যালেন্সের চেয়ে বেশি হয় এবং দামের পার্থক্য প্রান্তিক মান অতিক্রম করে, উদাহরণস্বরূপ, যদি মুদ্রার মূল্য এখন 6000 ইউয়ান হয়, তবে (6000-5000) / 6000/2 মুদ্রা বিক্রি করুন, যা নির্দেশ করে যে মুদ্রা মূল্যবান হয়েছে এবং আমরা অর্থটি ফিরে রূপান্তর করতে পারি। যদি মুদ্রা মূল্য হ্রাস পায়, উদাহরণস্বরূপ, 4000 ইউয়ান, তবে আমরা (5000-4000) / 4000/2 মুদ্রা কিনে থাকি। যদি মুদ্রা হ্রাস পায় তবে কিছু কিনুন। যদি এটি আবার বেড়ে যায়, আবার বিক্রি করুন, ব্যালেন্সের মতো, উভয় পক্ষের আলাদা হেজ রয়েছে, তাই আমি এটিকে ভারসাম্য কৌশল বলি।

কৌশলটির নীতিটি খুব সহজ। জাভাস্ক্রিপ্ট সংস্করণের কোডটি দীর্ঘ নয়, কেবল 70 টিরও বেশি লাইন। আরও সংক্ষিপ্ত ব্যাকরণ সহ পাইথন ভাষার কৌশলটি প্রতিস্থাপিত হয় এবং কোডটি অনেক ছোট, যা শিক্ষানবিশদের শেখার জন্য খুব উপযুক্ত। এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মে ডেভেলপারদের দ্বারা প্রচুর কোড ভাগ করা হয় এবং ভাষাটি সমর্থন করেJavaScript/C++/Pythonঅতএব, আরো ডেভেলপমেন্ট ল্যাঙ্গুয়েজ আয়ত্ত করা শুধুমাত্র শেখার, গবেষণা এবং ডেভেলপমেন্ট কৌশলগুলির জন্য সহায়ক নয়, প্ল্যাটফর্মের বিভিন্ন এপিআই ইন্টারফেসের সাথে পরিচিত।

কৌশল কোড

'''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

কৌশলটি শুধুমাত্র রেফারেন্স, শেখার এবং ব্যাক টেস্টিং এর জন্য। যদি আপনি আগ্রহী হন, আপনি এটি অপ্টিমাইজ এবং আপগ্রেড করতে পারেন।


সম্পর্কিত

আরো