এটি একাধিক চলমান গড় এবং গতির অগ্রগতির উপর ভিত্তি করে একটি ট্রেডিং কৌশল। কৌশলটি মূল্য এবং চলমান গড়ের মধ্যে ক্রসওভার সংকেতগুলি ক্যাপচার করে ট্রেডিংয়ের সুযোগগুলি সনাক্ত করার জন্য এসএমএমএ (সমতল চলমান গড়) এবং জেডএলইএমএ (জিরো-ল্যাগ এক্সপোনেনশিয়াল মুভিং গড়) এর মতো প্রযুক্তিগত সূচকগুলিকে একত্রিত করে। কৌশলটি একটি অভিযোজিত প্রক্রিয়া ব্যবহার করে যা ট্রেডিংয়ের নির্ভুলতা উন্নত করতে বাজারের অস্থিরতার উপর ভিত্তি করে সংকেত সংবেদনশীলতা সামঞ্জস্য করে।
এই কৌশলটি চারটি মূল চলমান গড় ব্যবহার করেঃ এসআরসি (এইচএলসি ভিত্তিক এসএমএমএ), হাই (উচ্চ ভিত্তিক এসএমএমএ), লো (নিম্ন ভিত্তিক এসএমএমএ) এবং এমআই (এসআরসি ভিত্তিক জেডএলইএমএ) । ট্রেডিং সংকেতগুলি মূলত এই চলমান গড়গুলির মধ্যে ক্রসওভার সম্পর্ক এবং আপেক্ষিক অবস্থানের উপর ভিত্তি করে। একাধিক সংকেত শর্তের সংমিশ্রণ ট্রেডিং সংকেতগুলির নির্ভরযোগ্যতা নিশ্চিত করে। কিনুন সংকেতগুলির মধ্যে চারটি বিভিন্ন শর্ত সংমিশ্রণ রয়েছে এবং বিক্রয় সংকেতগুলির মধ্যে চারটি বিভিন্ন শর্ত সংমিশ্রণও রয়েছে। প্রস্থান সংকেতগুলি এমআই গড়ের সাথে মূল্য ক্রসওভারের উপর ভিত্তি করে এবং চলমান গড়গুলির মধ্যে আপেক্ষিক অবস্থানগুলি।
কৌশলটি একাধিক চলমান গড় এবং গতির সূচকগুলির সংমিশ্রণের মাধ্যমে একটি তুলনামূলকভাবে সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। কৌশলটির অভিযোজনযোগ্য বৈশিষ্ট্য এবং একাধিক নিশ্চিতকরণ প্রক্রিয়া ট্রেডিং নির্ভরযোগ্যতা উন্নত করে। অপ্টিমাইজেশন এবং পরিমার্জনের মাধ্যমে, কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল পারফরম্যান্স বজায় রাখার সম্ভাবনা রয়েছে। ব্যবসায়ীদের লাইভ ট্রেডিংয়ের আগে পুঙ্খানুপুঙ্খ ব্যাকটেস্টিং এবং পরামিতি অপ্টিমাইজেশন পরিচালনা করার পরামর্শ দেওয়া হয়।
/*backtest start: 2024-01-10 00:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 //study("Limit order strategy", overlay=true) strategy('Limit order strategy', overlay = true) lengthMA = input(1) lengthmi = input(14) lengthhigh = input(14) lengthlow = input(14) calc_smma(src, len) => smma = 0.0 smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len smma calc_zlema(src, length) => ema1 = ta.ema(src, length) ema2 = ta.ema(ema1, length) d = ema1 - ema2 ema1 + d src = calc_smma(hlc3, lengthMA) hi = calc_smma(high, lengthhigh) lo = calc_smma(low, lengthlow) mi = calc_zlema(src, lengthmi) plot(src, color = color.new(#FF1493, 0), linewidth = 2, title = 'src') plot(hi, color = color.new(#7CFC00, 0), linewidth = 2, title = 'hi') plot(lo, color = color.new(#FF0000, 0), linewidth = 2, title = 'lo') plot(mi, color = color.new(#00FFFF, 0), linewidth = 2, title = 'mi') //strategy.order("buy", true, 1, stop = na, when = openbuy) // buy by market if current open great then previous high //strategy.order("sell", false, 1, stop = na, when = opensell) // sell by market if current open less then previous low //if src >= mi and src[1] <= mi[1] and src[1] <= lo[1] // strategy.entry("buy 1", strategy.long, qty = 15) sigorderbuy1 = src > mi and src[1] < mi[1] and src < lo and mi < lo sigorderbuy2 = src > lo and src[1] < lo[1] and mi < lo sigorderbuy3 = src > hi and src[1] < hi[1] and mi < hi sigorderbuy4 = src > mi and src[1] < mi[1] and src > hi and mi > hi //sigorderbuy5 = mi > hi and src > hi and src > mi and src[1] < mi[1] //sigorderbuy6 = mi < hi and src > hi and src[1] < hi[1] sigclosebuy = src < mi and src[1] > mi[1] or mi < lo and src < lo and src[1] > lo[1] sigordersell1 = src < mi and src[1] > mi[1] and src > hi and mi > hi sigordersell2 = src < hi and src[1] > hi[1] and mi > hi sigordersell3 = src < lo and src[1] > lo[1] and mi > lo sigordersell4 = src < mi and src[1] > mi[1] and src < lo and mi < lo //sigordersell5 = mi < lo and src < lo and src < mi and src[1] > mi[1] //sigordersell6 = mi > lo and src < lo and src[1] > lo[1] sigclosesell = src > mi and src[1] < mi[1] or mi > hi and src > hi and src[1] < hi[1] plot(sigorderbuy1 ? 1 : 0, 'sigorderbuy1') plot(sigorderbuy2 ? 1 : 0, 'sigorderbuy2') plot(sigorderbuy3 ? 1 : 0, 'sigorderbuy3') plot(sigorderbuy4 ? 1 : 0, 'sigorderbuy4') //plot(sigorderbuy5 ? 1 : 0,"sigorderbuy5") //plot(sigorderbuy6 ? 1 : 0,"sigorderbuy6") plot(sigordersell1 ? 1 : 0, 'sigordersell1') plot(sigordersell2 ? 1 : 0, 'sigordersell2') plot(sigordersell3 ? 1 : 0, 'sigordersell3') plot(sigordersell4 ? 1 : 0, 'sigordersell4') //plot(sigordersell5 ? 1 : 0,"sigordersell5") //plot(sigordersell6 ? 1 : 0,"sigordersell6") plot(sigclosebuy ? 1 : 0, 'sigclosebuy') plot(sigclosesell ? 1 : 0, 'sigclosesell') openbuy = sigorderbuy1 or sigorderbuy2 or sigorderbuy3 or sigorderbuy4 // or sigorderbuy5 or sigorderbuy6 opensell = sigordersell1 or sigordersell2 or sigordersell3 or sigordersell4 //or sigordersell5 or sigordersell6 openclosebuy = sigclosebuy openclosesell = sigclosesell alertcondition(condition = openbuy, title = 'sigorderbuy all', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Buy {{ticker}} sig_b1={{plot("sigorderbuy1")}} sig_b2={{plot("sigorderbuy2")}} sig_b3={{plot("sigorderbuy3")}} sig_b4={{plot("sigorderbuy4")}}"}') alertcondition(condition = opensell, title = 'sigordersell all', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Sell {{ticker}} sig_s1={{plot("sigordersell1")}} sig_ss={{plot("sigordersell2")}} sig_s3={{plot("sigordersell3")}} sig_s4={{plot("sigordersell4")}} sig_s5={{plot("sigordersell5")}} sig_61={{plot("sigordersell6")}}"}') alertcondition(condition = sigclosebuy, title = 'Close buy', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Close {{ticker}} T=short"}') alertcondition(condition = sigclosesell, title = 'Close sell', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Close {{ticker}} T=long"}') if sigorderbuy1 strategy.order('Buy 1', strategy.long, 1) if sigorderbuy2 strategy.order('Buy 2', strategy.long, 1) if sigorderbuy3 strategy.order('Buy 3', strategy.long, 1) if sigorderbuy4 strategy.order('Buy 4', strategy.long, 1) if sigordersell1 strategy.order('sell 1', strategy.short, 1) if sigordersell2 strategy.order('sell 2', strategy.short, 1) if sigordersell3 strategy.order('sell 3', strategy.short, 1) if sigordersell4 strategy.order('sell 4', strategy.short, 1) //strategy.order("sell 5", false, 1, when = sigordersell5) //strategy.order("sell 6", false, 1, when = sigordersell6)