حقیقت کے طور پر، اس مثال کوڈ بنانے سے پہلے، FMZ کوانٹ ٹریڈنگ پلیٹ فارم کے حکمت عملی مربع پر پہلے سے ہی MACD اشارے ڈرائنگ مثال کا ایک جاوا اسکرپٹ ورژن ہے: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 drawing'
},
'yAxis': [{
'title': {'text': 'K-line'},
'style': {'color': '#4572A7'},
'opposite': False
}, {
'title': {'text': 'index axis'},
'opposite': True
}],
'series': [{
'type': 'candlestick',
'name': 'current period',
'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
# calculate the indicator
macd = TA.MACD(r)
LogStatus(_D(), len(r))
# drawing
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 لائن ہے؟ (
اس مثال کی حکمت عملی میں ، مرکزی فنکشن چارٹ کو شروع کرنا شروع کرتا ہے ، اسے چارٹ فنکشن کہتے ہیں ، اور چارٹ کی تشکیل ChartCfg کو چارٹ آبجیکٹ تیار کرنے کے لئے ایک پیرامیٹر کے طور پر پاس کرتے ہیں۔ پھر یہ لوپ میں داخل ہوتا ہے ، K- لائن کے اعداد و شمار کو مستقل طور پر حاصل کرتا ہے ، فیصلہ کرتا ہے کہ K- لائن کے اعداد و شمار میں BAR کی تعداد 50 سے زیادہ ہے ، اور پھر MACD اشارے کا حساب لگاتا ہے (بہت کم BAR موثر اشارے کا حساب نہیں لگاسکتا) ۔ پھر ہم K- لائن کے اعداد و شمار اور اشارے کے اعداد و شمار کو چارٹ میں لکھ سکتے ہیں۔ ہم اسے چارٹ آبجیکٹ کے شامل فنکشن کا استعمال کرتے ہوئے چارٹ میں لکھتے ہیں۔ لکھتے وقت ، اگر شامل فنکشن کا آخری پیرامیٹر -1 متعین کیا گیا ہے تو ، یہ موجودہ ڈیٹا پوائنٹ کو اپ ڈیٹ کرنے کی قدر ہے۔ اگر -1 منتقل نہیں کیا جاتا ہے تو ، ایک نیا ڈیٹا پوائنٹ شامل کیا جاتا ہے۔ جب K- لائن BAR نئی طرح سے تیار کیا جاتا ہے تو ، ایک نیا ڈیٹا پوائنٹ شامل کیا جاتا ہے۔ جب K- لائن BAR تیار نہیں ہوتا ہے تو ، آخری BAR اور اسی اشارے کو اپ ڈیٹ کیا جاتا ہے۔ (K- لائن BAR کے ٹائم اسٹیمپ کا موازنہ کرکے طے کیا جاتا ہے)
یہ ایک حقیقی بوٹ پر بھی چل سکتا ہے:
حکمت عملی کا مثال کا پتہ:https://www.fmz.com/strategy/187379
اگر آپ کے پاس کوئی سوالات ہیں تو، براہ مہربانی ایک پیغام چھوڑ دیں. شکریہ ~