ایک سادہ ڈیجیٹل کرنسی کے لئے فوری ادائیگی روبوٹ

مصنف:چھوٹا سا خواب, تخلیق: 2021-02-18 16:09:43, تازہ کاری: 2023-09-26 20:57:30

img

ایک سادہ ڈیجیٹل کرنسی کے لئے فوری ادائیگی روبوٹ

سکوں کے حلقے میں بہت سے دوست ہیں جو دستی طور پر تجارت کرتے ہیں ، لیکن پھر بھی 0 بنیادی طور پر سیکھنے کے لئے روبوٹ کی ضرورت ہوتی ہے ، لیکن پھر بھی پروگرامنگ ڈیزائن کے آغاز میں زیادہ وقت لگتا ہے۔ ہم نے اس طرح کی ضروریات کی بنیاد پر اس مضمون کو ایک ساتھ مل کر ایک سادہ فوری طور پر روبوٹ ڈیزائن کیا ہے ، تاکہ سکوں کے حلقے کے دوستوں کو 0 بنیادی سیکھنے میں مدد ملے۔

سب سے پہلے ہم مطالبات کا تجزیہ کرتے ہیں، اس روبوٹ کا کام یہ ہے کہ جب ایک اکاؤنٹ میں خرید و فروخت کی کارروائی ہوتی ہے تو دوسرے اکاؤنٹس کو اس کارروائی کو انجام دینے کے لئے عملدرآمد کیا جاتا ہے۔ لہذا ، ہم پہلے دو موضوعات کو واضح کرتے ہیں:

  • حوالہ اکاؤنٹس: زیر نگرانی اکاؤنٹس ، اس اکاؤنٹ کی ہر حرکت کی نگرانی کریں۔
  • اکاؤنٹ کی پیروی: اکاؤنٹ کی پیروی ، جب حوالہ اکاؤنٹ میں کارروائی ہوتی ہے تو ، اکاؤنٹ کی پیروی اسی کارروائی کو انجام دیتی ہے۔

یہ ضروری ہے کہ پہلے سے ہی واضح ہو جائے، اور اگلے مرحلے کے بارے میں سوچنا جاری رکھیں؛ ہم کس طرح حوالہ اکاؤنٹس کی شناخت کرتے ہیں؟

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

جب یہ پتہ چلتا ہے کہ حوالہ اکاؤنٹ نے ایک ٹرانزیکشن کو انجام دیا ہے، تو یہ یقینی بنانا ضروری ہے کہ تازہ ترین اکاؤنٹ کے اعداد و شمار کے ریکارڈ کو اپ ڈیٹ کیا جائے تاکہ یہ معلوم کیا جا سکے کہ آیا کوئی نئی ٹرانزیکشن کی سرگرمی ہے.

اس کے علاوہ ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے۔

        // 检测跟单
        var amount = (nowAcc.Stocks + nowAcc.FrozenStocks) - (initAcc.Stocks + initAcc.FrozenStocks)  // 检测币数发生的变化
        var func = null 
        if (amount > 0) {   // 币变多了
            func = $.Buy    // 买入
        } else if (amount < 0) {  // 币变少了
            func = $.Sell         // 卖出
        } else {
            continue
        }
        
        // 执行跟单
        Log("跟单!数量:", Math.abs(amount), "#FF0000")
        for (var i = 1 ; i < exchanges.length ; i++) {    // i 等于 0 时,是参考交易所,不处理,处理其它的跟单交易所        
            func(exchanges[i], Math.abs(amount))          // 执行具体的交易函数,可能是$.Buy 或者是 $.Sell ,具体看amount 是大于0,还是小于0
        }
        
        // 执行跟单之后更新参考交易所账户信息记录
        initAcc = nowAcc                                  // 更新参考交易所最近一次的账户信息,用于下次对比

اس حکمت عملی کا بنیادی پتہ لگانے کا منطق مندرجہ بالا کوڈ ہے۔ آسان ڈیزائن کے لئے ، اس حکمت عملی نے ایف ایم زیڈ کے سرکاری ایمیزون ڈیجیٹل کرنسی ٹرانزیکشن لائبریری ایمیزون ٹیمپلیٹ کا استعمال کیا ہے۔$.Buy , $.Sellیہ سب اس ٹیمپلیٹ کے افعال ہیں، جس کا کام مندرجہ ذیل عمل کو انجام دینا ہے۔

اس کے علاوہ ، اس پالیسی میں کچھ اسٹیٹس ٹیبز بھی شامل کیے گئے ہیں ، تاکہ ہر اکاؤنٹ کے اعداد و شمار کی نگرانی کی جاسکے۔

function test() { 
    // 测试函数
    var ts = new Date().getTime()    
    if (ts % (1000 * 60 * 60 * 6) > 1000 * 60 * 60 * 5.5) {
        Sleep(1000 * 60 * 10)
        var x = Math.random()
        if (x > 0.5) {
            $.Buy(exchange, x / 10)    
        } else {
            $.Sell(exchange, x / 10)    
        }        
    }
}

function main() {
    LogReset(1)
    if (exchanges.length < 2) {
        throw "没有跟单的交易所"
    }
    var exName = exchange.GetName()
    // 检测参考交易所
    if (exName.includes("Futures_")) {
        throw "仅支持现货跟单"
    }
    Log("开始监控", exName, "交易所", "#FF0000")
    
    // 检测跟单交易所
    for (var i = 1 ; i < exchanges.length ; i++) {
        if (exchanges[i].GetName().includes("Futures_")) {
            throw "不支持期货交易所跟单"
        }
    }
    
    var initAcc = _C(exchange.GetAccount)
    while(1) {
        if(IsVirtual()) {
           // 测试函数
           test()  
        }  
        Sleep(5000)
        
        // 更新参考账户当前的账户信息
        var nowAcc = _C(exchange.GetAccount)
        
        // 参考交易所账户信息
        var refTbl = {
            type : "table", 
            title : "参考交易所",
            cols : ["名称", "币", "冻结币", "钱", "冻结钱"],
            rows : []
        }
        refTbl.rows.push([exName, nowAcc.Stocks, nowAcc.FrozenStocks, nowAcc.Balance, nowAcc.FrozenBalance])
        
        // 跟单交易所账户信息
        var followTbl = {
            type : "table", 
            title : "跟单交易所",
            cols : ["名称", "币", "冻结币", "钱", "冻结钱"],
            rows : []        
        }
        for (var i = 1 ; i < exchanges.length ; i++) {
            var acc = _C(exchanges[i].GetAccount)
            var name = exchanges[i].GetName()
            followTbl.rows.push([name, acc.Stocks, acc.FrozenStocks, acc.Balance, acc.FrozenBalance])
        }
        
        // 状态栏显示
        LogStatus(_D(), "\n`" + JSON.stringify(refTbl) + "`", "\n`" + JSON.stringify(followTbl) + "`")
        
        // 检测跟单
        var amount = (nowAcc.Stocks + nowAcc.FrozenStocks) - (initAcc.Stocks + initAcc.FrozenStocks)
        var func = null 
        if (amount > 0) {
            func = $.Buy
        } else if (amount < 0) {
            func = $.Sell
        } else {
            continue
        }
        
        // 执行跟单
        Log("跟单!数量:", Math.abs(amount), "#FF0000")
        for (var i = 1 ; i < exchanges.length ; i++) {            
            func(exchanges[i], Math.abs(amount))
        }
        
        // 执行跟单之后更新参考交易所账户信息记录
        initAcc = nowAcc
    }
}

آئیے ایک حقیقی ٹیسٹ کرتے ہیں، ایف ایم زیڈ کا استعمال کرتے ہوئے ایک ویکس ایپ سمیلیٹر ایکسچینج۔ یہاں میں نے تین ویکس ایپ اکاؤنٹس شامل کیے ہیں، جو ایک دوسرے سے الگ الگ اکاؤنٹس ہیں۔ ایک حوالہ تبادلہ کے طور پر اور دوسرے دو ٹریکنگ کے طور پر۔

img

اس کے بعد ہم ایف ایم زیڈ کے ٹرانزیکشن ٹرمینل کا استعمال کرتے ہوئے دستی طور پر اگلی بُک بھیجتے ہیں اور دیکھتے ہیں کہ آیا روبوٹ خود بخود ادائیگی کرتا ہے۔

img

آپ دیکھ سکتے ہیں کہ روبوٹ نے ٹرانزیکشن کا پتہ لگایا اور عملدرآمد کیا.

img

مکمل حکمت عملی:https://www.fmz.com/strategy/255182

یہ حکمت عملی صرف سیکھنے کے لیے ہے۔ اگر آپ کے پاس کوئی سوال ہے تو شکریہ۔


متعلقہ

مزید

سیائیہیلو ، کیا آپ اس کی تعیناتی میں مدد کر سکتے ہیں ، ادائیگی کی درخواست کریں۔ شکریہ۔

سیائیہیلو ، کیا آپ اس کی تعیناتی میں مدد کر سکتے ہیں ، ادائیگی کی درخواست کریں۔ شکریہ۔

موٹا بچہکیا آپ کو معلوم ہے کہ آپ کے پاس کیا ہے؟

13169222039ہیلو، میں آپ کو ایک سوال پوچھنا چاہتا ہوں، کیا آپ کو اس شخص کا کوڈ مل سکتا ہے جو ایک سکوں پر ہے؟

چھوٹا سا خواباس حکمت عملی کا کوڈ اوپن سورس ہے ، حکمت عملی کو حکمت عملی اسکوائر پر شائع کیا گیا ہے ، جہاں ایف ایم زیڈ کمیونٹی کے ذریعہ تیار کردہ سبق کو دیکھا جاسکتا ہے ، ابتدائی سبق تعلیم کے لئے استعمال کیا جاتا ہے ، اور بنیادی استعمال کو تعینات کیا جاسکتا ہے۔

روٹمیاگر آپ کے پاس کوئی ٹرانزیکشن نہیں ہے تو ، آپ کے پاس ایک ٹرانزیکشن نہیں ہے۔