Type/to search
8
Follow
1364
Followers
পাইথন সংস্করণ একক প্ল্যাটফর্ম ভারসাম্য কৌশল
Discussions
Created 2020-02-05 10:02:03  Updated 2023-10-12 21:20:47
 1
 2965

img

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

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

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

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

কৌশল বর্ণনা

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

এর জন্য একটি পজিশন খোলার প্রয়োজন হয়, উদাহরণস্বরূপ, অ্যাকাউন্টে 5,000 ইউয়ান এবং 1 মুদ্রা থাকলে এবং মূল্যের পার্থক্য থ্রেশহোল্ডের চেয়ে বেশি হলে, মুদ্রার মূল্য এখন 6,000 ইউয়ান। , এটি বিক্রি করুন (600 0-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

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

Related Recommendations
Comment
All comments (1)

    好牛啊

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)