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

60 سطر کا کوڈ ایک خیال کا احساس - معاہدہ نیچے ماہی گیری

مصنف:نینا باداس, تخلیق: 2022-04-02 18:27:54, تازہ کاری: 2022-04-02 18:29:47

60 سطر کا کوڈ ایک خیال کا احساس - معاہدہ نیچے ماہی گیری

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

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

تیز رفتار ترقیFMZ.COM

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

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

حکمت عملی کا ماخذ کوڈ:

function cancelAll() {
    while (true) {
        var orders = _C(exchange.GetOrders)
        if (orders.length == 0) { 
            break 
        }
        for (var i = 0 ; i < orders.length ; i++) {
            exchange.CancelOrder(orders[i].Id, orders[i])
            Sleep(interval)
        }
    }
}

function getLong(arr, kind) {
    var ret = null 
    for (var i = 0 ; i < arr.length ; i++) {
        if (arr[i].Type == (kind == "pos" ? PD_LONG : ORDER_TYPE_BUY)) {
            ret = arr[i]
        }
    }
    return ret
}

function pendingBidOrders(firstPrice) {
    var index = 0
    var amount = baseAmount
    while (true) {
        var pos = _C(exchange.GetPosition)
        var price = firstPrice - index * baseSpacing
        amount *= ratio
        index++
        exchange.SetDirection("buy")
        exchange.Buy(price, amount)        
        if (pos.length != 0) {
            var longPos = getLong(pos, "pos")
            if (longPos) {
                exchange.SetDirection("closebuy")
                exchange.Sell(longPos.Price + profitTarget, longPos.Amount)
            }
        }
        while (true) {
            Sleep(interval)
            if (!getLong(_C(exchange.GetOrders), "orders")) {
                cancelAll()
                break
            }
            if (!getLong(_C(exchange.GetPosition), "pos")) {
                cancelAll()
                return 
            }
        }
    }
}

function main() {
    exchange.SetContractType(symbol)
    while (true) {
        pendingBidOrders(_C(exchange.GetTicker).Last)
    }
}

پیرامیٹرز کا ڈیزائن بھی بہت آسان ہے:

img

صرف کئی پیرامیٹرز ہیں.

چلو کوڈ کی دسیوں لائنوں کے backtest نتیجہ دیکھیں

بیک ٹیسٹ وقت کی حد تصادفی مقرر کریں:

img

بیک ٹسٹ:

img

img

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

مندرجہ بالا حکمت عملی کوڈ صرف مطالعہ اور تحقیق کے لئے استعمال ہوتے ہیں۔


مزید