এই উদাহরণ কোডিং করার আগে, উদ্ভাবকরা কোয়ালিফাইড ট্রেডিং প্ল্যাটফর্ম কৌশল স্কোয়ারে লিখেছেনঃhttps://www.fmz.com/strategy/151972⇒ জাভাস্ক্রিপ্ট সংস্করণে ম্যাকডি পয়েন্টারগ্রাফ উদাহরণ বিদ্যমান। ⇒ কিন্তু ব্যবহারকারীর প্রয়োজন, একটি পাইথন সংস্করণ উদাহরণ লিখতে, কৌশলগতভাবে নকশা গ্রাফ উন্নয়ন করার সময় রেফারেন্স কোড হিসাবে।
এই কোডটি খুবই সহজঃ
'''backtest
start: 2020-01-28 00:00:00
end: 2020-02-26 00:00:00
period: 1d
exchanges: [{"eid":"OKEX","currency":"BTC_USDT"}]
'''
ChartCfg = {
'__isStock': True,
'title': {
'text': 'Python画图'
},
'yAxis': [{
'title': {'text': 'K线'},
'style': {'color': '#4572A7'},
'opposite': False
}, {
'title': {'text': '指标轴'},
'opposite': True
}],
'series': [{
'type': 'candlestick',
'name': '当前周期',
'id': 'primary',
'data': []
}, {
'type': 'line',
'id': 'dif',
'name': 'DIF',
"yAxis" : 1,
'data': []
}, {
'type': 'line',
'id': 'dea',
'name': 'DEA',
"yAxis" : 1,
'data': []
}, {
'type': 'line',
'id': 'macd',
'name': 'MACD',
"yAxis" : 1,
'data': []
}]
}
def main():
global ChartCfg
preTime = 0
chart = Chart(ChartCfg)
chart.reset()
while True:
while True:
r = _C(exchange.GetRecords)
if len(r) > 50:
break
# 计算指标
macd = TA.MACD(r)
LogStatus(_D(), len(r))
# 画图
for i in range(len(r)):
if r[i]["Time"] == preTime:
chart.add(0, [r[i]["Time"], r[i]["Open"], r[i]["High"], r[i]["Low"], r[i]["Close"]], -1)
chart.add(1, [r[i]["Time"], macd[0][i]], -1)
chart.add(2, [r[i]["Time"], macd[1][i]], -1)
chart.add(3, [r[i]["Time"], macd[2][i]], -1)
elif r[i]["Time"] > preTime:
chart.add(0, [r[i]["Time"], r[i]["Open"], r[i]["High"], r[i]["Low"], r[i]["Close"]])
chart.add(1, [r[i]["Time"], macd[0][i]])
chart.add(2, [r[i]["Time"], macd[1][i]])
chart.add(3, [r[i]["Time"], macd[2][i]])
preTime = r[i]["Time"]
Sleep(500)
এইটাChartCfg
একটি অভিধান ভেরিয়েবলের মধ্যে চার্ট কনফিগারেশন তথ্য সংরক্ষণ করা হয়, যেমনঃ
এই চার্টে কতটি লাইন আছে? (তিনটি লাইন ডিআইএফ, ডিইএ, ম্যাকডি)
এই চার্টে কি K-লাইন আছে? (
এই প্যাটার্নের নীতিতে main ফাংশনটি চার্টটি ইনস্টল করতে শুরু করে, চার্ট ফাংশনটি কল করে, চার্টটি কনফিগার করে, চার্ট সিএফজিকে একটি প্যারামিটার হিসাবে ইনপুট করে, একটি চার্ট অবজেক্ট তৈরি করে। তারপর একটি লুপে যান, ক্রমাগত K-লাইন ডেটা পান, K-লাইন ডেটা BAR এর সংখ্যা 50 এর চেয়ে বড় হলেই MACD নির্দেশক গণনা করতে পারেন। তারপর K-লাইন ডেটা এবং নির্দেশক ডেটা চার্টে লিখতে পারেন। Chart object ব্যবহার করে চার্টে পদ্ধতি লিখুন add ফাংশন । লেখার সময়, add ফাংশনের শেষ প্যারামিটারটি যদি নির্দিষ্ট করা হয় -1, বর্তমান ডেটা পয়েন্টের মান আপডেট করার জন্য; যদি না পাঠানো হয় -1, একটি নতুন ডেটা পয়েন্ট যোগ করার জন্য। যখন K-line BAR নতুনভাবে তৈরি হয়, তখন একটি নতুন ডেটা পয়েন্ট যোগ করা হয়, যখন K-line BAR তৈরি হয় না, তখন শেষ BAR এবং সংশ্লিষ্ট সূচক আপডেট করা হয়।
এটি একটি বাস্তব ডিস্কের সাথেও কাজ করতে পারেঃ
এখান থেকে আপনি একটি ভিডিও দেখতে পারেন।https://www.fmz.com/strategy/187379
যদি আপনার কোন প্রশ্ন থাকে, তাহলে মন্তব্যের জন্য ধন্যবাদ।