
এই কৌশলটি একটি স্বনির্ধারিত ট্রেডিং সিস্টেম যা ZigZag সূচক এবং Aroon সূচককে একত্রিত করে। ZigZag সূচকটি বাজারের গোলমালকে ফিল্টার করতে এবং গুরুত্বপূর্ণ মূল্যের ওঠানামা সনাক্ত করতে ব্যবহৃত হয়, এবং Aroon সূচকটি প্রবণতার শক্তি এবং সম্ভাব্য বিপরীত দিকগুলি সনাক্ত করতে ব্যবহৃত হয়। কৌশলটি এই দুটি সূচকের সমন্বয় করে, প্রবণতা সংবেদনশীলতা বজায় রেখে, সময়মত বাজারের বিপরীত দিকগুলিও ধরতে সক্ষম হয়।
কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে:
এই কৌশলটি ZigZag এবং Aroon সূচকগুলির সংমিশ্রণ দ্বারা একটি সম্পূর্ণ প্রবণতা ট্র্যাকিং সিস্টেম তৈরি করে। কৌশলটির সুবিধা হল এর স্ব-অনুসরণযোগ্যতা এবং দ্বৈত নিশ্চিতকরণ প্রক্রিয়া, তবে একই সাথে প্যারামিটার নির্বাচন এবং বাজারের পরিবেশের উপর কৌশলটির কার্যকারিতার প্রভাবের বিষয়েও মনোযোগ দেওয়া প্রয়োজন। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, কৌশলটি বাস্তব ব্যবসায়ের ক্ষেত্রে স্থিতিশীল পারফরম্যান্সের প্রত্যাশা করে।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Zig Zag + Aroon Strategy", overlay=true)
// Zig Zag parameters
zigzagDepth = input(5, title="Zig Zag Depth")
// Aroon parameters
aroonLength = input(14, title="Aroon Length")
// Zig Zag logic
var float lastZigZag = na
var float lastZigZagHigh = na
var float lastZigZagLow = na
var int direction = 0 // 1 for up, -1 for down
// Calculate Zig Zag
if (not na(high) and high >= ta.highest(high, zigzagDepth) and direction != 1)
lastZigZag := high
lastZigZagHigh := high
direction := 1
if (not na(low) and low <= ta.lowest(low, zigzagDepth) and direction != -1)
lastZigZag := low
lastZigZagLow := low
direction := -1
// Aroon calculation
highestHigh = ta.highest(high, aroonLength)
lowestLow = ta.lowest(low, aroonLength)
aroonUp = (aroonLength - (bar_index - ta.highestbars(high, aroonLength))) / aroonLength * 100
aroonDown = (aroonLength - (bar_index - ta.lowestbars(low, aroonLength))) / aroonLength * 100
// Long entry condition
longCondition = (ta.crossover(aroonUp, aroonDown)) and (lastZigZag == lastZigZagHigh)
if (longCondition)
strategy.entry("Long", strategy.long)
// Short entry condition
shortCondition = (ta.crossover(aroonDown, aroonUp)) and (lastZigZag == lastZigZagLow)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions
if (ta.crossover(aroonDown, aroonUp) and strategy.position_size > 0)
strategy.close("Long")
if (ta.crossover(aroonUp, aroonDown) and strategy.position_size < 0)
strategy.close("Short")
// Plot Zig Zag
plot(lastZigZag, color=color.blue, title="Zig Zag", linewidth=2, style=plot.style_stepline)
// Plot Aroon
hline(70, "Aroon Up Overbought", color=color.red)
hline(30, "Aroon Down Oversold", color=color.green)
plot(aroonUp, color=color.green, title="Aroon Up")
plot(aroonDown, color=color.red, title="Aroon Down")