اس مثال کوڈ کرنے سے پہلے ، ایجاد کنندہ نے ایک تجارتی پلیٹ فارم کی حکمت عملی کو کوٹیفائی کیا: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
ایک لغت متغیر میں گراف کی ترتیب کی معلومات محفوظ کی جاتی ہیں ، جیسے:
اس چارٹ میں کتنے لائنیں ہیں؟ (تین اشارے کی لائنیں ہیں، DIF، DEA، MACD)
کیا اس گراف میں K لائنز ہیں؟
اس مثال کی حکمت عملی میں ، مین فنکشن چارٹ کو ابتدائی طور پر شروع کرتا ہے ، چارٹ فنکشن کو کال کرتا ہے ، چارٹ کو ترتیب دیتا ہے ، چارٹ سی ایف جی کو بطور پیرامیٹر ان پٹ کرتا ہے ، ایک چارٹ آبجیکٹ چارٹ بناتا ہے۔ پھر ایک لوپ میں جاتا ہے ، مسلسل K لائن ڈیٹا حاصل کرتا ہے ، یہ فیصلہ کرتا ہے کہ اگر K لائن ڈیٹا BAR کی تعداد 50 سے زیادہ ہے تو MACD اشارے کا حساب لگایا جاسکتا ہے۔ پھر K لائن ڈیٹا اور اشارے کے اعداد و شمار کو چارٹ میں لکھا جاسکتا ہے۔ چارٹ میں چارٹ آبجیکٹ کا استعمال کرتے ہوئے ایک طریقہ لکھنے کے لئے شامل کریں فعل. لکھنے کے وقت، اگر شامل کرنے کی تقریب کا آخری پیرامیٹر -1 مخصوص کیا جاتا ہے، تو موجودہ ڈیٹا پوائنٹ کی تعداد کو اپ ڈیٹ کریں۔ اگر نہیں بھیجا جاتا ہے تو، -1 ایک نیا ڈیٹا پوائنٹ شامل کرتا ہے۔ جب K لائن BAR نئی تخلیق کی جاتی ہے تو ، ایک نیا ڈیٹا پوائنٹ شامل کیا جاتا ہے ، جب K لائن BAR تخلیق نہیں کی جاتی ہے تو ، آخری BAR اور اس کے مطابق اشارے کو اپ ڈیٹ کیا جاتا ہے۔
یہ بھی ایک حقیقی ڈسک پر چل سکتا ہے:
اسٹریٹجک نمونہ کا پتہ:https://www.fmz.com/strategy/187379
اگر آپ کے پاس کوئی سوال ہے تو ، براہ کرم ہمیں بتائیں۔