avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

ایک آئیڈیا کو نافذ کرنے کے لیے کوڈ کی 60 لائنیں - کنٹریکٹ نیچے سے چننے کی حکمت عملی

میں تخلیق کیا: 2022-03-19 14:37:08, تازہ کاری: 2024-12-02 21:32:02
comments   14
hits   3439

ایک آئیڈیا کو نافذ کرنے کے لیے کوڈ کی 60 لائنیں - کنٹریکٹ نیچے سے چننے کی حکمت عملی

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

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

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)
    }
}

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

ایک آئیڈیا کو نافذ کرنے کے لیے کوڈ کی 60 لائنیں - کنٹریکٹ نیچے سے چننے کی حکمت عملی

صرف یہ چند پیرامیٹرز ہیں۔

کوڈ کی ان درجنوں لائنوں کے پس پردہ اثر کو دیکھیں

صرف بیک ٹیسٹ ٹائم رینج سیٹ کریں:

ایک آئیڈیا کو نافذ کرنے کے لیے کوڈ کی 60 لائنیں - کنٹریکٹ نیچے سے چننے کی حکمت عملی

بیک ٹیسٹ رن:

ایک آئیڈیا کو نافذ کرنے کے لیے کوڈ کی 60 لائنیں - کنٹریکٹ نیچے سے چننے کی حکمت عملی

ایک آئیڈیا کو نافذ کرنے کے لیے کوڈ کی 60 لائنیں - کنٹریکٹ نیچے سے چننے کی حکمت عملی

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

حکمت عملی کوڈ صرف سیکھنے اور تحقیق کے مقاصد کے لیے ہے۔