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

ٹریڈنگ ٹرمینل

ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم ایک ماڈیولر اور حسب ضرورتتجارتآپ کو آزادانہ طور پر مختلف ڈیٹا ماڈیولز اور ٹریڈنگ تقریب ماڈیولز شامل کر سکتے ہیں، اور یہاں تک کہ ان کے اپنے کوڈ ماڈیولز (ٹریڈنگ ٹرمینل پلگ ان) تیار کر سکتے ہیں. اس کے انتہائی لچکدار اور مفت استعمال کے ساتھ ، یہ دستی تجارت اور نیم پروگرامٹک تجارت کے صارفین کو بھی بہت آسان بناتا ہے۔ ٹریڈ صفحے پر مختلف ماڈیول گھسیٹے اور زوم کیے جاسکتے ہیں ، ماڈیولز سے منسلک تجارتی جوڑوں اور تبادلے کی ترتیبات میں ترمیم کی جاسکتی ہے ، اور ایک ہی قسم کے متعدد ماڈیول شامل کیے جاسکتے ہیں۔

ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم نے ٹریڈنگ ٹرمینل کی فعالیت کو بہتر بنایا، دستی ٹریڈنگ کو بہتر بنایا، اور ٹریڈنگ ٹرمینل کے ٹریڈنگ پلگ ان فنکشن کو متعارف کرایا.

پلگ ان کا اصول

اصول وہی ہے جوڈیبگنگ کا آلہTrade ٹرمینل کے صفحے کے ڈوکر کو ایک کوڈ کا ٹکڑا بھیجنے کے لئے ، اور چارٹ اور ٹیبلز کی واپسی کی حمایت (ڈیبگنگ ٹول بھی اپ گریڈنگ کی حمایت کرتا ہے).ڈیبگنگ کا آلہ، یہ صرف چارج کے بغیر 3 منٹ کے لئے عملدرآمد کیا جا سکتا ہے. یہ کچھ سادہ چھوٹے افعال کا احساس کر سکتے ہیں، پیچیدہ حکمت عملی اب بھی زندہ ٹریڈنگ میں چلانے کی ضرورت ہے.

پلگ ان لکھنا

ایک ٹریڈنگ ٹرمینل پلگ ان تخلیق کرنے کے لئے، آپ کی حکمت عملی کی قسم مقرر کر سکتے ہیں:Trading pluginپرنئی حکمت عملیصفحہ. ٹریڈنگ پلگ ان کی حمایت کرتا ہےJavaScript, Python, C++، اورMyLanguage.

پلگ ان کا استعمال

پلگ ان کوڈ ایک وقت کی مدت کے لئے عملدرآمد کر سکتے ہیں، اور یہ کچھ سادہ آپریشن انجام دے سکتے ہیں، جیسےآئس برگ آرڈر, زیر التواء احکامات, آرڈر منسوخیاورآرڈر کا حساب. اسی طرحڈیبگنگ کا آلہ، یہ استعمال کرتا ہےreturnنتائج واپس کرنے کے لئے، اور یہ بھی براہ راست چارٹ اور میزیں واپس کر سکتے ہیں. یہاں چند مثالیں ہیں، اور دیگر افعال آپ خود ہی دریافت کر سکتے ہیں.

  • گہرائی اسنیپ شاٹ پر واپس جائیں

    // Return to the depth snapshot
    function main() {
        var tbl = { 
            type: 'table', 
            title: 'snapshot of the order depth @ ' + _D(), 
            cols: ['#', 'Amount', 'Ask', 'Bid', 'Amount'], 
            rows: []
        }
        var d = exchange.GetDepth()
        for (var i = 0; i < Math.min(Math.min(d.Asks.length, d.Bids.length), 15); i++) {
            tbl.rows.push([i, d.Asks[i].Amount, d.Asks[i].Price+'#ff0000', d.Bids[i].Price+'#0000ff', d.Bids[i].Amount])
        }
        return tbl
    }
    
    def main():
        tbl = {
            "type": "table",
            "title": "snapshot of the order depth @ " + _D(),
            "cols": ["#", "Amount", "Ask", "Bid", "Amount"],
            "rows": []
        }
        d = exchange.GetDepth()
        for i in range(min(min(len(d["Asks"]), len(d["Bids"])), 15)):
            tbl["rows"].append([i, d["Asks"][i]["Amount"], str(d["Asks"][i]["Price"]) + "#FF0000", str(d["Bids"][i]["Price"]) + "#0000FF", d["Bids"][i]["Amount"]])
        return tbl
    
    void main() {
        json tbl = R"({
            "type": "table",
            "title": "abc",
            "cols": ["#", "Amount", "Ask", "Bid", "Amount"],
            "rows": []   
        })"_json;
        
        tbl["title"] = "snapshot of the order depth @" + _D(); 
        auto d = exchange.GetDepth();
        for(int i = 0; i < 5; i++) {
            tbl["rows"].push_back({format("%d", i), format("%f", d.Asks[i].Amount), format("%f #FF0000", d.Asks[i].Price), format("%f #0000FF", d.Bids[i].Price), format("%f", d.Bids[i].Amount)});
        }
        
        LogStatus("`" + tbl.dump() + "`");
        // C++ does not support "return json" to display the table, and you can create the live trading to display the table of the status bar
    }
    
  • کراس پیریڈ اسپریڈز کا تعین کریں

    // Draw cross-period spreads
    var chart = { 
        __isStock: true,    
        title : { text : 'spread analysis chart'},                     
        xAxis: { type: 'datetime'},                 
        yAxis : {                                        
            title: {text: 'spread'},                   
            opposite: false                   
        },
        series : [                    
            {name : "diff", data : []}
        ]
    }  
    
    function main() {
        exchange.SetContractType('quarter')
        var recordsA = exchange.GetRecords(PERIOD_M5)
        exchange.SetContractType('this_week')
        var recordsB = exchange.GetRecords(PERIOD_M5)
        
        for(var i = 0; i < Math.min(recordsA.length, recordsB.length); i++){
            var diff = recordsA[recordsA.length - Math.min(recordsA.length, recordsB.length) + i].Close - recordsB[recordsB.length - Math.min(recordsA.length, recordsB.length) + i].Close
            chart.series[0].data.push([recordsA[recordsA.length - Math.min(recordsA.length, recordsB.length) + i].Time, diff])
        }
        return chart
    }
    
    chart = {
        "__isStock": True,
        "title": {"text": "spread analysis chart"},
        "xAxis": {"type": "datetime"},
        "yAxis": {
            "title": {"text": "spread"}, 
            "opposite": False
        }, 
        "series": [
            {"name": "diff", "data": []}
        ]
    }  
    
    def main():
        exchange.SetContractType("quarter")
        recordsA = exchange.GetRecords(PERIOD_M5)
        exchange.SetContractType("this_week")
        recordsB = exchange.GetRecords(PERIOD_M5)  
    
        for i in range(min(len(recordsA), len(recordsB))):
            diff = recordsA[len(recordsA) - min(len(recordsA), len(recordsB)) + i].Close - recordsB[len(recordsB) - min(len(recordsA), len(recordsB)) + i].Close
            chart["series"][0]["data"].append([recordsA[len(recordsA) - min(len(recordsA), len(recordsB)) + i]["Time"], diff])
        return chart
    
    // C++ does not support "return json" structure drawing
    

زیادہ حکمت عملی میں دیگر مثالیں ہیں، جیسے چھوٹی مقدار میں خرید / فروخت.

استعمال کا طریقہ

  • ٹریڈنگ ٹرمینل کے پلگ ان ماڈیول شامل کریں کھولیں Trade ٹرمینل کے صفحے پر ماڈیول شامل کریں مینو، میں ٹریڈنگ ٹرمینل پلگ انحکمت عملی لائبریریموجودہ FMZ اکاؤنٹ کی فہرست میں خود کار طریقے سے دکھایا جائے گا، شامل کرنے کے لئے پلگ ان تلاش کریں اور Add پر کلک کریں.
  • پلگ ان چلائیں Execute پر کلک کریں ، اور ٹریڈنگ ٹرمینل پلگ ان چلانے لگے گا۔ پلگ ان لاگ کو ظاہر نہیں کرے گا ، لیکن یہ ڈسپلے ٹیبل واپس کرسکتا ہے۔
  • پلگ ان چلانے کا وقت پلگ ان کا زیادہ سے زیادہ چلانے کا وقت 3 منٹ ہے۔ اور یہ 3 منٹ سے زیادہ ہونے کے بعد خود بخود چلانے سے باز آجائے گا۔
توسیع شدہ API انٹرفیس ڈیٹا کی تلاش