এই পাতাটি আলাপঃপ্রতিবন্ধী পাতা।https://www.fmz.com/strategy/345
এই নিবন্ধে, আমরা একসাথে একটি সহজ জাভাস্ক্রিপ্ট নীতির পোর্ট করার অনুশীলন করব। পোর্ট নীতির মাধ্যমে, উদ্ভাবকরা ট্রেডিং প্ল্যাটফর্ম ইন্টারফেসের কলগুলি আরও ভালভাবে জানতে পারবেন এবং প্ল্যাটফর্ম বিকাশের নীতিতে বিভিন্ন ভাষার সামান্য পার্থক্য বুঝতে পারবেন।
জাভাস্ক্রিপ্ট সংস্করণ থেকে উদ্ধৃতিঃ
এই স্টোরেজটি তৈরি করতে হবে, উদাহরণস্বরূপ, আপনার অ্যাকাউন্টে 5000 ডলার আছে, এবং 1 টাকার সাথে, যদি টাকার মূল্য অ্যাকাউন্টের ব্যালেন্সের চেয়ে 5000 বেশি হয় এবং এর দামের পার্থক্যটি হ্রাসের চেয়ে বেশি হয়, উদাহরণস্বরূপ, টাকার মূল্য এখন 6000 ডলার, আপনি এটি বিক্রি করবেন, যদি টাকার মূল্য বৃদ্ধি পায়, আপনি এটি ফেরত পাবেন, যদি এটি হ্রাস পায়, উদাহরণস্বরূপ, 4000 ডলার, আপনি এটি কিনবেন, যদি এটি হ্রাস পায়, আপনি কিছু কিনবেন, যদি এটি হ্রাস পায়, আপনি এটি আবার বিক্রি করবেন, যেমন একটি সমতুল্য, উভয় পক্ষের বিভিন্ন হেজিং, তাই আমি এটিকে ভারসাম্যপূর্ণ কৌশল বলি।
কৌশলটি খুব সহজ, জাভাস্ক্রিপ্ট সংস্করণের কোডটিও খুব দীর্ঘ নয়, মাত্র 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
এই নীতির পরামিতিগুলি জাভাস্ক্রিপ্ট সংস্করণের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ, নীতির কোডটিও বাক্যে বাক্যে পোর্ট করা হয়েছে, প্রোগ্রামের কাঠামোটি পরিবর্তন হয়নি এবং বাক্যে বাক্যে তুলনা করা যেতে পারে, বিভিন্ন ভাষায় লেখা নীতিগুলির পার্থক্য দেখুন।
প্যারামিটার কনফিগারেশন
পরিসংখ্যানে
এই পাতাটি আলাপঃপুলিশ-পুলিশ-পুলিশ সম্পর্কিত।https://www.fmz.com/strategy/183374
এই কৌশলটি শুধুমাত্র রেফারেন্স লার্নিং, রি-টেস্টিং এবং আপগ্রেড অপ্টিমাইজ করার জন্য আগ্রহীদের জন্য।
স্বর্গীয় সম্পদভাল গরু।