avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

ازگر ورژن MACD ڈرائنگ کی مثال

میں تخلیق کیا: 2020-02-27 19:18:17, تازہ کاری: 2023-10-09 22:50:01
comments   0
hits   2701

ازگر ورژن MACD ڈرائنگ کی مثال

ازگر ورژن MACD ڈرائنگ کی مثال

درحقیقت، یہ نمونہ کوڈ بنانے سے پہلے، میں نے موجد کوانٹیٹیو ٹریڈنگ پلیٹ فارم اسٹریٹجی اسکوائر پایا: https://www.fmz.com/strategy/151972۔ MACD اشارے ڈرائنگ مثال کا جاوا اسکرپٹ ورژن پہلے سے موجود ہے۔ تاہم، صارف کے مطالبے کے جواب میں، مثال کا ایک Python ورژن لکھا جاتا ہے جو حکمت عملی تیار کرتے اور ڈیزائن کرتے وقت حوالہ کوڈ کے طور پر کام کرتا ہے۔

کوڈ بہت آسان ہے:

'''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 چارٹ کنفیگریشن لغت

یہChartCfgلغت متغیر چارٹ کی ترتیب کی معلومات کو ذخیرہ کرتا ہے، مثال کے طور پر: اس گراف میں کتنی لائنیں ہیں؟ (تین اشارے لائنیں، یعنی DIF، DEA، MACD) کیا اس چارٹ میں کوئی شمعیں ہیں؟ (‘قسم’: ‘کینڈل اسٹک’ کا مطلب ہے اسے کینڈل اسٹک ڈیٹا کے طور پر سیٹ کرنا) MACD قدریں نسبتاً چھوٹی ہیں اگر تجارتی جوڑا BTC_USDT ہے تو چارٹ کو ڈرائنگ کرتے وقت انڈیکیٹرز کو ایک ساتھ کمپریس کیا جائے گا، اس لیے چارٹ کو دو Y محوروں کے ساتھ ترتیب دیا جانا چاہیے۔ (لہذا ‘yAxis’ میں دو Y-axis کنفیگریشنز ہیں، ایک اشارے کا محور اور دوسرا K-line محور)

ڈیٹا لوڈ ہو رہا ہے۔

اس مثال کی حکمت عملی میں، مرکزی فنکشن چارٹ کی شروعات کو انجام دینا شروع کرتا ہے، چارٹ فنکشن کو کال کرتا ہے، چارٹ کنفیگریشن ChartCfg کو پیرامیٹر کے طور پر پاس کرتا ہے، اور ایک چارٹ آبجیکٹ چارٹ تیار کرتا ہے۔ پھر یہ مسلسل K-لائن ڈیٹا حاصل کرنے کے لیے ایک لوپ میں داخل ہوتا ہے جب تک کہ K-line ڈیٹا BARs کی تعداد 50 سے زیادہ ہو، MACD اشارے کا حساب لگایا جا سکتا ہے (اگر بہت کم BARs ہوں تو کوئی موثر اشارے کا حساب نہیں لگایا جا سکتا)۔ . پھر آپ K-line ڈیٹا اور اشارے کا ڈیٹا چارٹ میں لکھ سکتے ہیں۔ چارٹ پر لکھنے کے لیے، چارٹ آبجیکٹ کا ایڈ طریقہ استعمال کریں۔ لکھتے وقت، اگر ایڈ فنکشن کا آخری پیرامیٹر -1 ہے، تو موجودہ ڈیٹا پوائنٹ کی قدر کو اپ ڈیٹ کیا جائے گا۔ اگر -1 پاس نہیں کیا جاتا ہے، تو ایک نیا ڈیٹا پوائنٹ شامل کیا جائے گا۔ جب K-line BAR نئے سرے سے تیار ہوتا ہے، ایک نیا ڈیٹا پوائنٹ شامل کیا جاتا ہے جب K-line BAR تیار نہیں ہوتا ہے، آخری BAR اور متعلقہ اشارے کو اپ ڈیٹ کیا جاتا ہے۔ (K-line BAR کے ٹائم اسٹیمپ کا موازنہ کرکے فیصلہ کیا گیا)

براہ راست بیک ٹیسٹ کر سکتے ہیں۔

ازگر ورژن MACD ڈرائنگ کی مثال

آپ اسے حقیقی وقت میں بھی چلا سکتے ہیں: ازگر ورژن MACD ڈرائنگ کی مثال

پالیسی کی مثال کا پتہ: https://www.fmz.com/strategy/187379

اگر آپ کے کوئی سوالات ہیں تو، پیغام چھوڑنے کے لیے آپ کا شکریہ۔