80 لائنوں کے کوڈ کے ساتھ ہائی فریکوئینسی کی حکمت عملی کے ساتھ فروخت کے لیے بے دماغ روبوٹ کا استحصال کیسے کیا گیا؟

مصنف:گھاس, تخلیق: 2023-12-24 21:37:45, تازہ کاری: 2023-12-26 15:40:23

img

مواقع کا مشاہدہ

حالیہ دو دنوں میں جب مارکیٹ کو دیکھا گیا تو یہ غیر متوقع طور پر پتہ چلا کہ بائن این کے پاس ایک بائن اسٹورج مارکیٹ ہے۔ یہ بہت عجیب ہے ، تجارت کا حجم بہت زیادہ ہے ، اور تجارت کی تعدد بہت تیز ہے ، ایک مخصوص منٹ کی لائن کا گراف ذیل میں ہے ، آپ کو ہر منٹ کی تجارت کا حجم ملتا جلتا نظر آتا ہے ، اور منٹ کی لائن پر آپ کو لمبی نیچے کی لائن نظر آتی ہے۔imgبائنن کے ایک سیکنڈ کے درجے کی K لائن کا مشاہدہ کرتے ہوئے ، یہ پتہ چلا ہے کہ ٹرمینل خراب ہے ، کوئی شخص ہر 5-7s کے وقفے پر 20،000 سے 20،000 STORJs کی قیمت پر مارکیٹ کرے گا ، لاگت کے بغیر ، براہ راست K لائن پر ایک چھوٹا سا گڑھا کھودے گا ، اور قیمت مختصر مدت میں بحال ہوجائے گی۔ یہ آپریشن واضح طور پر آئس پہاڑ کے ذریعہ تفویض کردہ روبوٹ کی وجہ سے ہے۔ یہ فروخت کی جانے والی آپریشن بہت لمبی مدت تک جاری رہی ، اس کی مجموعی مقدار کا تخمینہ دس لاکھ ڈالر کی سطح تک پہنچ گیا ، اور بہت سے اوقات میں اس کی وجہ سے ایک ہزار فیصد تک پہنچ گیا ، جس کا مطلب ہے کہ صرف تجارت کی سلائڈ ، اس حکمت عملی کے عملدرآمد کرنے والوں کو سیکڑوں ہزاروں ڈالر کا نقصان ہوا ہے۔ اس طرح ، لیکن مشینی آپریشن اور فعال تجارت میں نمایاں طور پر مارکیٹ کو ختم کرنے کا موقع موجود ہے۔img

ایک بار پھر ، ایک بار پھر ، ہم نے ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر.

حکمت عملی کے خیالات

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

حکمت عملی کا مظاہرہ

حکمت عملی مندرجہ ذیل ہے ، شروع میں کوئی منافع نہیں چھپا ، آج سہ پہر اسے تبدیل کیا گیا ، منافع کو باہر نکال دیا گیا ، پاگل فروخت کرنے والے روبوٹ نے ہر بار کی مقدار کو 5000 کے ارد گرد تبدیل کردیا ہے ، لہذا بہترین سودے کا دور گزر گیا ہے۔ شروع کرنے کے لئے فی گھنٹہ شاید 100-200U پکانا ، کلیدی خطرہ ، کم لاگت ہے۔ اس کے برعکس ، یہاں سے ، آئس مونگ تفویض کرنے میں دراصل بہت ساری تکنیکیں بھی ہیں ، اگر آپ حکمت عملی لکھتے ہیں تو ، ایف ایم زیڈ پر صرف ایک درجن منٹ گزارنے کے بعد ، خریداری کے احکامات کو گہرائی میں لکھنے کے لئے لکھا جاسکتا ہے ، جس سے حکم کا سائز اور قیمت کا تعین ہوتا ہے ، آئس مونگ تفویض کی حکمت عملی کو دیکھنا ، جس میں خود کار طریقے سے ادائیگی کا سائز ایڈجسٹ کیا جاتا ہے ، جس میں نمبروں کا سائز اور ڈسک وغیرہ کی خصوصیات ہوتی ہیں ، آسانی سے دس ہزار ڈالر کی بچت ہوتی ہے۔

img

حکمت عملی کا ماخذ

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

function CancelPendingOrders() {
    var orders = _C(exchange.GetOrders)
    for (var j = 0; j < orders.length; j++) {
        exchange.CancelOrder(orders[j].Id, orders[j])
    }
}

function onexit(){
    CancelPendingOrders()
}

function GetPrice(Type, Depth) {
    var sumAmount = 0
    var checkAmount = Type == "Buy" ? CheckBuyAmount : CheckSellAmount
    var deep = Type == "Buy" ? Depth.Bids : Depth.Asks
    for(var i = 0; i < Math.min(20, deep.length); i++) {
        if(Type == "Buy"  && deep[i].Price == lastBuyPrice && buyId){
            sumAmount += deep[i].Amount - amountBuy //这里要减去自己的挂单
        }else if(Type == "Sell"  && deep[i].Price == lastSellPrice && sellId){
            sumAmount += deep[i].Amount - amountSell
        }else{
            sumAmount += deep[i].Amount
        }
        if(sumAmount >= checkAmount){
            return deep[i].Price
        }
    }
    return deep[19].Price
}

function OnTick() {
    var depth = _C(exchange.GetDepth)
    var buyPrice = _N(Math.min(GetPrice("Buy", depth) + 0.0001, depth.Asks[0].Price-0.0001) , 4) //保证在盘口
    var sellPrice = _N(Math.max(GetPrice("Sell", depth) - 0.0001, depth.Bids[0].Price+0.0001), 4)
    LogStatus('buy_price:'+buyPrice, '  sell price: '+sellPrice)
    if ((sellPrice - buyPrice) < DiffPrice) {
        buyPrice = 0
    }
    if(sellPrice != lastSellPrice && sellId){
        exchange.CancelOrder(sellId);
        sellId = 0
        lastSellPrice = 0
    }
    if(buyPrice != lastBuyPrice && buyId){
        exchange.CancelOrder(buyId);
        buyId = 0
        lastBuyPrice = 0
    }   
    var acc = _C(exchange.GetAccount)
    if(account.Stocks+account.FrozenStocks != acc.Stocks+acc.FrozenStocks){
        LogProfit((acc.Stocks+acc.FrozenStocks)*depth.Bids[0].Price+acc.Balance+acc.FrozenBalance - 2000)
        Log('free '+acc.Stocks, ' lock: '+ acc.FrozenStocks, ' total: ' , (acc.Stocks+acc.FrozenStocks)*depth.Bids[0].Price+acc.Balance+acc.FrozenBalance)
    }
    account = acc
    amountBuy = _N(Math.min(account.Balance / buyPrice - 0.1, Amount), 0)
    amountSell = _N(account.Stocks, 0)
    if (sellPrice > 0 && amountSell > 40 && sellId == 0) {
        sellId = exchange.Sell(_N(sellPrice,4), amountSell)
        lastSellPrice = sellPrice
    }
    if (buyPrice>0 && amountBuy > 40 && buyId == 0) {
        buyId = exchange.Buy(_N(buyPrice,4), amountBuy)
        lastBuyPrice = buyPrice
    }
    Sleep(Interval)
}
var account = {Stocks:0, FrozenStocks:0, Balance:0, FrozenBalance:0}
var buyId = 0
var sellId = 0
var lastBuyPrice = 0
var lastSellPrice = 0
var amountSell = 0
var amountBuy = 0
function main() {
    CancelPendingOrders()
    while (true) {
        OnTick()
    }
}

مزید

چیک پوائنٹگراس دیو، یہ چلانے کی حکمت عملی کتنی ہے؟

yc123hاستاد کوکی گراس براہ کرم ، اگر یہ حکمت عملی کام کرتی ہے تو ، کیا یہ اس بات کی نشاندہی کرتی ہے کہ یہ حکمت عملی کام کرتی ہے کہ ہر سیریز کے آغاز میں ، اکثر واپسی سے پہلے دو آرڈرز کی ناکامی کا پیغام دیکھا جاتا ہے (یعنی یہ کہ خرید و فروخت کے تمام احکامات کام کرتے ہیں) ؟

گھاسیہ صفر ہے.

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

گھاساس کے علاوہ ، اس نے ایک بار پھر اس کے بارے میں بات کی ، لیکن اس نے اس کے بارے میں کچھ بھی نہیں کہا۔