৬০ লাইন কোড দিয়ে একটি আইডিয়া বাস্তবায়ন করুন -- চুক্তির নীচে মাছ ধরার কৌশল

লেখক:লিডিয়া, সৃষ্টিঃ ২০২২-১১-০৮ ১৫ঃ৩০ঃ০১, আপডেটঃ ২০২৩-০৯-২০ ০৯ঃ০৫ঃ০৮

img

গ্রিড কৌশল, Martingale কৌশল, যা বাজার ওঠানামা পছন্দ, তাদের নিজস্ব অসুবিধা আছে, এবং তারা কিছু সময়ের জন্য 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

শুধুমাত্র এই ৬টি প্যারামিটার দিয়ে।

ব্যাকটেস্টিং এর ফলাফল দেখুন

র্যান্ডমভাবে ব্যাকটেস্টিং সময় পরিসীমা সেট করুনঃ

img

ব্যাকটেস্টঃ

img

img

img

এটি গ্রিড কৌশল, মার্টিনগেল কৌশল খুব ~ মত দেখায়। শিক্ষার্থীরা যারা শিক্ষানবিস সাধারণত দীর্ঘ কোড সঙ্গে কৌশল ভয় পায়, যা সহজেই dissuaded করা হয়। শুরু করার জন্য একটি সংক্ষিপ্ত এবং সংক্ষিপ্ত কৌশল সহজ এবং কৌশল ধারনা বুঝতে এবং যৌক্তিক নকশা শিখতে আরো উপযুক্ত।

কৌশল কোডটি শুধুমাত্র গবেষণা ও গবেষণার উদ্দেশ্যে।


সম্পর্কিত

আরো