وسائل لوڈ ہو رہے ہیں... لوڈنگ...

پیتھون ورژن MACD گرافک مثال

مصنف:ایجاد کاروں کی مقدار - خواب, تخلیق: 2020-02-27 19:18:17, تازہ کاری: 2023-10-09 22:50:01

img

پیتھون ورژن 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画图'
    },
    '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) کیا اس گراف میں K لائنز ہیں؟ type:candlestick MACD کی تعداد نسبتاً چھوٹی ہے، اگر ٹریڈنگ جوڑی BTC_USDT ہے تو چارٹ بنانے کے وقت اشارے کو ایک ساتھ کمپریس کرنا بہت مشکل ہے، لہذا چارٹ کو 2 Y محور کے طور پر بھی تشکیل دیا گیا ہے۔ (لہذا yAxis میں دو Y محور کی تشکیل ہے، ایک اشارے محور اور ایک K محور)

ڈیٹا لوڈ کریں

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

براہ راست ریٹریکشن

img

یہ بھی ایک حقیقی ڈسک پر چل سکتا ہے:img

اسٹریٹجک نمونہ کا پتہ:https://www.fmz.com/strategy/187379

اگر آپ کے پاس کوئی سوال ہے تو ، براہ کرم ہمیں بتائیں۔


متعلقہ

مزید