لیکس ریپر کی جادوئی تبدیلی سے ہائی فریکوئنسی حکمت عملی ڈیزائن کی تلاش کریں

مصنف:لیدیہ، تخلیق: 2022-11-07 18:05:04، تازہ کاری: 2023-09-15 20:42:34

img

پچھلے مضامین میں ہم نے اصل اسپاٹ ورژن لیکس ریپر کی ہائی فریکوئنسی حکمت عملی کے خیال اور کوڈ پر عمل درآمد کا تجزیہ کیا ہے۔

لیکس ریپر حکمت عملی تجزیہhttps://www.fmz.com/bbs-topic/9725) لیکس ریپر اسٹریٹجی تجزیہ (2)https://www.fmz.com/bbs-topic/9733

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

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

جادو تبدیلی کے بعد LeeksReaper

var TickInterval = 100

function LeeksReaper() {
    var self = {}
    self.numTick = 0
    self.lastTradeId = 0
    self.vol = 0
    self.askPrice = 0
    self.bidPrice = 0
    self.orderBook = {
        Asks: [],
        Bids: []
    }
    self.prices = []
    self.tradeOrderId = 0
    self.account = null
    self.buyPrice = 0
    self.sellPrice = 0
    self.state = 0
    self.depth = null

    self.updateTrades = function() {
        var trades = _C(exchange.GetTrades)
        if (self.prices.length == 0) {
            while (trades.length == 0) {
                trades = trades.concat(_C(exchange.GetTrades))
            }
            for (var i = 0; i < 15; i++) {
                self.prices[i] = trades[trades.length - 1].Price
            }
        }
        self.vol = 0.7 * self.vol + 0.3 * _.reduce(trades, function(mem, trade) {
            // Huobi not support trade.Id
            if ((trade.Id > self.lastTradeId) || (trade.Id == 0 && trade.Time > self.lastTradeId)) {
                self.lastTradeId = Math.max(trade.Id == 0 ? trade.Time : trade.Id, self.lastTradeId)
                mem += trade.Amount
            }
            return mem
        }, 0)

    }
    self.updateOrderBook = function() {
        var orderBook = _C(exchange.GetDepth)
        self.depth = orderBook
        self.buyPrice = orderBook.Bids[pendingLevel].Price
        self.sellPrice = orderBook.Asks[pendingLevel].Price
        self.orderBook = orderBook
        if (orderBook.Bids.length < 3 || orderBook.Asks.length < 3) {
            return
        }
        self.bidPrice = orderBook.Bids[0].Price * 0.618 + orderBook.Asks[0].Price * 0.382 + 0.01
        self.askPrice = orderBook.Bids[0].Price * 0.382 + orderBook.Asks[0].Price * 0.618 - 0.01
        self.prices.shift()
        self.prices.push(_N((orderBook.Bids[0].Price + orderBook.Asks[0].Price) * 0.15 +
            (orderBook.Bids[1].Price + orderBook.Asks[1].Price) * 0.1 +
            (orderBook.Bids[2].Price + orderBook.Asks[2].Price) * 0.1 +
            (orderBook.Bids[3].Price + orderBook.Asks[3].Price) * 0.075 +
            (orderBook.Bids[4].Price + orderBook.Asks[4].Price) * 0.05 +
            (orderBook.Bids[5].Price + orderBook.Asks[5].Price) * 0.025))
    }

    self.updateAccount = function() {
        var account = exchange.GetAccount()
        if (!account) {
            return
        }
        self.account = account
        LogProfit(parseFloat(account.Info.totalWalletBalance), account)
    }

    self.CancelAll = function() {
        while (1) {
            var orders = _C(exchange.GetOrders)
            if (orders.length == 0) {
                break
            }
            for (var i = 0; i < orders.length; i++) {
                exchange.CancelOrder(orders[i].Id)
            }
            Sleep(100)
        }
    }

    self.poll = function() {
        self.numTick++
        self.updateTrades()
        self.updateOrderBook()
        var pos = _C(exchange.GetPosition)

        var burstPrice = self.prices[self.prices.length - 1] * burstThresholdPct
        var bull = false
        var bear = false
        LogStatus(_D(), "\n", 'Tick:', self.numTick, 'self.vol:', self.vol, ', lastPrice:', self.prices[self.prices.length - 1], ', burstPrice: ', burstPrice)

        if (self.numTick > 2 && (
                self.prices[self.prices.length - 1] - _.max(self.prices.slice(-6, -1)) > burstPrice ||
                self.prices[self.prices.length - 1] - _.max(self.prices.slice(-6, -2)) > burstPrice && self.prices[self.prices.length - 1] > self.prices[self.prices.length - 2]
            )) {
            bull = true
        } else if (self.numTick > 2 && (
                self.prices[self.prices.length - 1] - _.min(self.prices.slice(-6, -1)) < -burstPrice ||
                self.prices[self.prices.length - 1] - _.min(self.prices.slice(-6, -2)) < -burstPrice && self.prices[self.prices.length - 1] < self.prices[self.prices.length - 2]
            )) {
            bear = true            
        }

        if (pos.length != 0) {
            if (pos[0].Type == PD_LONG) {
                self.state = 1
            } else {
                self.state = 2
            }
        } else {
            self.state = 0
        }


        if ((!bull && !bear)) {
            return
        }

        if (bull) {
            var price = (self.state == 0 || self.state == 1) ? self.buyPrice : self.depth.Bids[coverPendingLevel].Price
            var amount = (self.state == 0 || self.state == 1) ? pendingAmount : pos[0].Amount
            exchange.SetDirection("buy")
            exchange.Buy(price, amount)
        } else if (bear) {
            var price = (self.state == 0 || self.state == 2) ? self.sellPrice : self.depth.Asks[coverPendingLevel].Price
            var amount = (self.state == 0 || self.state == 2) ? pendingAmount : pos[0].Amount
            exchange.SetDirection("sell")
            exchange.Sell(price, amount)                    
        }
        self.numTick = 0
        Sleep(TickInterval)
        self.CancelAll()
        self.updateAccount()
    }

    while (!self.account) {
        self.updateAccount()
        Sleep(500)
    }
    Log("self.account:", self.account)

    return self
}

function main() {
    LogProfitReset()
    exchange.SetPrecision(pricePrecision, amountPrecision)
    exchange.SetContractType("swap")
    var reaper = LeeksReaper()  
    while (true) {
        reaper.poll()
        Sleep(100)
    }
}

img

حکمت عملی میں تبدیلی کا خیال

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

یہ حکمت عملی بنیادی طور پر قلیل مدتی قیمت کے رجحان کی خرابی کے اصل معیار کو برقرار رکھتی ہے، جو پیرامیٹر کی طرف سے کنٹرول کیا جاتا ہے.burstThresholdPCT، جس کے مطابق یہ فیصلہ کیا جائے کہ آیا قلیل مدتی قیمتbullیاbear.

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

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

حکمت عملی کی اصلاح

فی الحال، اصلاح کے لیے کوئی اچھی سمت نہیں ملی ہے۔ کوئی دلچسپی رکھنے والا آپ کے تبصرے چھوڑ سکتا ہے اور آپ کے ساتھ بحث کر سکتا ہے۔

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

یہ حکمت عملی صرف سیکھنے کے لئے ہے، حقیقی بوٹ کو نقصان ہوسکتا ہے جب مارکیٹ بہت پرامید نہیں ہے.


متعلقہ

مزید