ATR-এর উপর ভিত্তি করে গতিশীল স্টপ লস কৌশল


সৃষ্টির তারিখ: 2023-10-10 10:50:21 অবশেষে সংশোধন করুন: 2023-10-10 10:50:21
অনুলিপি: 4 ক্লিকের সংখ্যা: 936
1
ফোকাস
1617
অনুসারী

ওভারভিউ

এই কৌশলটি এটিআর সূচক ব্যবহার করে গতিশীল স্টপ লস পয়েন্ট সেট করে এবং দামের ওঠানামা অনুযায়ী স্টপ লস পয়েন্টকে সামঞ্জস্য করে, ঝুঁকি নিয়ন্ত্রণের জন্য। কৌশলটি মূলত 5 দিনের ইএমএ এবং 20 দিনের ইএমএ গঠনের মাধ্যমে একাধিক প্রবেশ করে এবং তারপরে এটিআর সূচক ব্যবহার করে স্টপ লস পয়েন্ট এবং স্টপ লস পয়েন্ট সেট করে। মূল্যের ওঠানামা অনুযায়ী স্টপ লস পয়েন্টটি সামঞ্জস্য করা হয়, যাতে আরও বেশি লাভ লক করা যায়।

কৌশল নীতি

এই কৌশলটি প্রথমে সিদ্ধান্ত নেয় যে 5 দিনের ইএমএ-তে 20 দিনের ইএমএ-তে একটি গোল্ডফোর্ক তৈরি করার সময় অতিরিক্ত প্রবেশ করা হবে। প্রবেশের পরে, এটিআর সূচকটি ব্যবহার করে প্রবেশের দাম থেকে বর্তমান দামের এটিআর গুণিতক গণনা করা হয়, এবং স্টপ লসটি প্রবেশের দামের নীচে 1.5 এটিআর হিসাবে সেট করা হয়। তারপরে দাম বাড়ার সাথে সাথে ধীরে ধীরে স্টপ লসটি বাড়ানো হয়, যদি দাম বৃদ্ধি প্রবেশের দাম 3 এটিআর ছাড়িয়ে যায় তবে আংশিকভাবে থামানো হয়।

বিশেষ করে, কৌশলটি নিম্নলিখিত ভেরিয়েবলগুলি সংজ্ঞায়িত করেঃ

  • entry_price: প্রবেশ মূল্য
  • stop_price: স্টপ প্রাইস
  • take_profit_price: বন্ধের মূল্য
  • atr_down: নিচের ATR লাইন
  • atr_up: উপরের ATR লাইন
  • atr_current: বর্তমান ATR লাইন
  • atr_ref:ATR মান

প্রবেশের পরে, এটির জন্য এটিআর এর বর্তমান মান হিসাবে এটিআর রেফ গণনা করা হবে, এটিআর এর বর্তমান মূল্য থেকে এটিআর এর গুণিতক হিসাবে এটিআর_ডিভ। তারপরে এটিআর_ডাউন, এটিআর_করেন্ট এবং এটিআর_আপের অবস্থান অনুযায়ী এটিআর_ডিভ সেট করুন। স্টপ_প্রাইসটি প্রবেশের দামের নীচে 1.5 এটিআর।

দাম বাড়ার সাথে সাথে, বর্তমান দামের avg এবংatr_up এর তুলনা করে, যদি avg এatr_up পরা হয়, তবেatr_div এবংatr এর সংশ্লিষ্ট অবস্থানটি পুনরায় গণনা করা হয়, যার ফলে স্টপ লিনাকে ধীরে ধীরে বাড়ানো হয় এবং পজিশন লাভ বাড়ানো হয়।

যদি দামটি প্রবেশের মূল্য 3ATR এর বেশি হয়, তবে মুনাফা লক করার জন্য আংশিক পজিশনটি সরিয়ে ফেলা হবে, এই মুহুর্তে tookProfit চিহ্নটি সত্য হিসাবে সেট করা হয়েছে। তারপরে যদি দাম বাড়তে থাকে তবে স্টপ লস অবস্থানটি বাড়ানো অব্যাহত থাকবে। যদি স্টপ লস ট্রিগার করা হয় তবে tookProfit বিচার করা হবে, যদি আগে আংশিক স্টপ করা হয় তবে কেবলমাত্র অবশিষ্ট অবস্থানটি সরিয়ে ফেলা হবে, অন্যথায় পুরো পজিশনটি সরিয়ে ফেলা হবে।

কৌশলগত সুবিধা

  1. এটিআর সূচকটি গতিশীলভাবে স্টপ পজিশনের সাথে সামঞ্জস্য করে, বাজারের ওঠানামা অনুযায়ী যুক্তিসঙ্গত স্টপ দূরত্ব সেট করতে পারে।

  2. প্রবণতা অনুসরণ করে মুনাফা কাটা, যখন ক্ষতির পরিমাণ সীমিত থাকে। স্টপ লিন্ডটি ধীরে ধীরে বাড়তে থাকে, যাতে মুনাফা ক্রমাগত জমা হয়।

  3. একটি আংশিক স্টপ ম্যানেজমেন্ট আংশিক মুনাফা লক করতে পারে এবং ঝুঁকি হ্রাস করতে পারে। তারপরে স্টপ পজিশনটি বাড়তে থাকে এবং মুনাফা চলতে থাকে।

কৌশলগত ঝুঁকি

  1. এটিআর সূচকগুলি অস্বাভাবিক বিঘ্নের প্রতি সংবেদনশীল নয় এবং ফাঁকগুলির ঝুঁকি মোকাবেলা করতে পারে না।

  2. ইএমএ সূচকগুলি ট্রেন্ডের বিপরীত দিকটি নির্ধারণ করতে পারে না এবং ট্রেন্ডের বিপরীত দিকটি নতুন অবস্থানে প্রবেশ করতে পারে।

  3. কিছু অংশ বন্ধ হয়ে যাওয়ার পর আবার ক্ষতির সম্ভাবনা বেশি থাকে।

  4. প্যারামিটার অপ্টিমাইজেশনের অভাব, 1.5 এটিআর স্টপ এবং 3 এটিআর স্টপ বিভিন্ন জাতের সাথে সামঞ্জস্য করা প্রয়োজন।

কৌশল অপ্টিমাইজেশন

  1. এটিআর সূচকটি পিছিয়ে না পড়ার জন্য অন্যান্য স্টপ লস সূচক যেমন ডোনচিয়ান চ্যানেল অন্তর্ভুক্ত করার কথা বিবেচনা করা যেতে পারে।

  2. বিভিন্ন গড়রেখা সূচক পরীক্ষা করা যায়, অথবা MACD ইত্যাদি যোগ করে ট্রেন্ড রিভার্সনের বিচার করা যায়।

  3. বিভিন্ন জাতের জন্য বিভিন্ন সেটিং আছে, যার সাহায্যে আংশিক স্তব্ধতার অনুপাত এবং সংখ্যা অপ্টিমাইজ করা যায়।

  4. প্যারামিটার অপ্টিমাইজেশান যোগ করা হয়েছে, বিভিন্ন ATR গুণকের ক্ষতি-বন্ধক প্রভাব পরীক্ষা করা হয়েছে। ধাপে ধাপে ক্ষতি-বন্ধক বৈশিষ্ট্য যোগ করা হয়েছে।

  5. প্রবণতা যখন দুর্বল হয় তখন পরীক্ষা করা হয়, এবং প্রবণতা যখন শক্তিশালী হয় তখনই এই কৌশলটি বিবেচনা করা উচিত।

সারসংক্ষেপ

এই কৌশলটির সামগ্রিক ধারণাগুলি পরিষ্কার এবং সহজেই বোঝা যায়, এটিআর সূচক ব্যবহার করে গতিশীলভাবে স্টপ লস সামঞ্জস্য করে ট্রেডিংয়ের ঝুঁকি নিয়ন্ত্রণের জন্য এটির সর্বাধিক সুবিধা। তবে এটিআর সূচক নিজেই পিছিয়ে রয়েছে এবং প্যারামিটার সেটিংটি অপ্টিমাইজ করার প্রয়োজন রয়েছে। অন্যান্য স্টপ এবং ট্রেন্ড বিচার সূচক যুক্ত করা উন্নতির দিক হতে পারে। এছাড়াও, কিছু স্টপ মেশিনের বিভিন্ন জাতের উপর ভিত্তি করে অপ্টিমাইজেশন পরীক্ষা করা দরকার। সামগ্রিকভাবে, এই কৌশলটি এটিআর ব্যবহার করে ক্ষতি পরিচালনার জন্য একটি ধারণার প্রস্তাব দেয়, তবে আরও অপ্টিমাইজেশন এবং পরিমার্জনের প্রয়োজন।

কৌশল সোর্স কোড
/*backtest
start: 2022-10-03 00:00:00
end: 2023-10-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ekinbasarkomur

//@version=5
strategy("[EKIN] ATR Exit Strategy", overlay=true, initial_capital = 1000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, calc_on_every_tick = true)

// Simple EMA tracking
fastEMA = ta.ema(close, 5)
slowEMA = ta.ema (close, 20)
atr = ta.atr(14)

// We define entry price for future reference
var float entry_price = na
// We define stop and take profit for future calculations
var float stop_price = na
var float take_profit_price = na

// We define atr limtim its here
var float atr_down = na
var float atr_up = na
var float atr_current = na
var float atr_ref = na

avg = (low + high) / 2

// Conditions
enterCondition = ta.crossover(fastEMA, slowEMA)
var bool tookProfit = false
timePeriod = time >= timestamp(syminfo.timezone, 2021, 12, 15, 0, 0)
InTrade = strategy.position_size > 0

// Go long if conditions are met
if (enterCondition and timePeriod and not InTrade)
    // Calculate and update variables
    entry_price := avg
    atr_ref := atr
    atr_div = int((avg - entry_price) / atr_ref)
    atr_down := entry_price + (atr_ref * (atr_div - 1.5))
    atr_up := entry_price + (atr_ref * (atr_div + 1))
    atr_current := entry_price + (atr_ref * atr_div) 
    stop_price := (entry_price - (atr_ref * 1.5))
    take_profit_price := (entry_price + (atr_ref * 3))
    strategy.order("buy", strategy.long, qty = 2)

// Enter here if in position
if InTrade or tookProfit
    stopCondition = avg < stop_price
    takeProfitCondition = avg > take_profit_price

    if avg < atr_down
        stopCondition := true

    // Move stop price and exit price if price for each atr price increase
    if avg > atr_up
        if tookProfit
            atr_ref := atr
        atr_div = int((avg - entry_price) / atr_ref)
        atr_down := entry_price + (atr_ref * (atr_div - 1))
        atr_up := entry_price + (atr_ref * (atr_div + 1))
        atr_current := entry_price + (atr_ref * atr_div) 

    // Take half of the investment if current price is 3 atr higher than entry price
    if (takeProfitCondition and timePeriod and InTrade and not tookProfit)
        strategy.order("take_half_profit", strategy.short, qty = 1)
        tookProfit := true

    // Exit position if conditions are met and reset the variables
    if (stopCondition and timePeriod and InTrade)
        if tookProfit
            strategy.order("exit", strategy.short, qty = 1)
        else
            strategy.order("stop_loss", strategy.short, qty = 2)

        tookProfit := false

// Plot EMA's
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.yellow)

// Plot ATR Limit/Stop positions
profit_plot = plot(series = InTrade?atr_up:na, title = "profit", color = color.green, style=plot.style_linebr)
close_plot = plot(series = InTrade?atr_current:na, title = "close", color = color.white, style=plot.style_linebr)
stop_plot = plot(series = InTrade?atr_down:na, title = "stop_loss", color = color.red, style=plot.style_linebr)
fill(profit_plot, close_plot, color = color.new(color.green, 80))
fill(close_plot, stop_plot, color =color.new(color.red,80))