দুই-পর্যায়ের স্টপ লস কৌশল


সৃষ্টির তারিখ: 2023-10-25 18:11:30 অবশেষে সংশোধন করুন: 2023-10-25 18:11:30
অনুলিপি: 0 ক্লিকের সংখ্যা: 729
1
ফোকাস
1617
অনুসারী

দুই-পর্যায়ের স্টপ লস কৌশল

ওভারভিউ

এই কৌশলটির মূল ধারণা হল দুটি স্টপ-অফ সেট করা, যখন প্রথম স্টপ-অফ ট্রিগার করা হয়, তখন স্টপ-অফটি প্রবেশের মূল্যে স্থানান্তরিত করা হয়, যাতে স্টপ-অফটি বন্ধ না হয়।

কৌশল নীতি

এই কৌশলটি ব্রাইন ব্যান্ড এবং স্টোক্যাস্টিক সূচক প্রবেশের উপর ভিত্তি করে তৈরি করা হয়েছে। দামগুলি ব্রাইন ব্যান্ডের বাইরে চলে গেলে শূন্য করুন এবং স্টোক্যাস্টিক সূচকটি ওভারসোল্ড দেখায় যখন আরও বেশি করুন।

এই কৌশলটির প্রবেশের লজিক হলঃ

  1. স্টোক্যাস্টিক কে লাইন D-এর নিচে চলে গেলে এবং বন্ধের মূল্য ব্রিনের নিচে নেমে গেলে অতিরিক্ত প্রবেশ করা হয়

  2. স্টোক্যাস্টিক কে লাইনে ডি লাইন অতিক্রম করে যখন বন্ধের দাম বুলিনের চেয়ে বেশি হয় তখন খালি প্রবেশ করুন

এই কৌশলটি দুটি স্টপ পয়েন্ট সেট করে, প্রথম স্টপ পয়েন্টটি 200 এবং দ্বিতীয় স্টপ পয়েন্টটি 500 পয়েন্টে স্থির করা হয়েছে।

যখন মূল্য চলাচলের প্রথম স্টপ-অফ পয়েন্টটি ট্রিগার করা হয়, তখন এই কৌশলটি স্টপ-অফ পয়েন্টটি প্রবেশের মূল্যে স্থানান্তরিত করে। এইভাবে, প্রথম পর্যায়ে লাভকে লক করা যায় এবং স্টপ-অফগুলিকে মূল্যের ওঠানামার প্রান্তে আটকে রাখা যায় না।

যখন দ্বিতীয় স্টপ বা স্টপ লস ট্রিগার হয়, তখন এই কৌশলটি পুরোপুরি বন্ধ হয়ে যায়।

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

এই দুই ধাপের স্টপ লস কৌশলটির সবচেয়ে বড় সুবিধা হল যে এটি মুনাফার লকিং অর্জন করতে পারে এবং একই সাথে স্টপ লসকে মূল্যের ওঠানামা দ্বারা প্রান্তিক করা থেকে রক্ষা করে। স্টপ লস পয়েন্টটি প্রবেশের মূল্যে স্থানান্তরিত করার মাধ্যমে, স্টপ লসকে প্রান্তিককরণের সম্ভাবনা হ্রাস করা যায় এবং মুনাফা রক্ষা করা যায়।

আরেকটি সুবিধা হল যে এই কৌশলটি ব্রিন-ব্যান্ড সূচক ব্যবহার করে যা মূল্যের ওঠানামা এবং স্টোক্যাস্টিক সূচককে ব্যবহার করে যা ওভারব্রেড ওভারসোলের জন্য ব্যবহার করা হয়। এই দুটি সূচক একে অপরের পরিপূরক এবং এন্ট্রিগুলির সঠিকতা বাড়ায়।

কৌশলগত ঝুঁকি

এই কৌশলটির প্রধান ঝুঁকি হ’ল বুলিন-ব্যান্ড এবং স্টোক্যাস্টিক উভয়ই ভুল সংকেত দিতে পারে। যদি বুলিন-ব্যান্ডের পরিধিটি ভুলভাবে গণনা করা হয়, তবে এটি ভুল প্রবেশের সময় বা ভুল সংকেত তৈরি করতে পারে। যদি স্টোক্যাস্টিক সূচকটি একটি মিথ্যা ব্রেকআউট তৈরি করে তবে এটিও ভুল প্রবেশের কারণ হতে পারে।

এছাড়াও, স্টপপয়েন্টটি প্রবেশের দামের দিকে সরানোর ঝুঁকিও রয়েছে। যদি ট্রেডিংয়ের ক্ষেত্রে ভি-টাইপ বিপরীত হয় তবে স্টপপয়েন্টটি দ্বিতীয়বার ট্রিগার হতে পারে।

এই ঝুঁকিগুলি হ্রাস করার জন্য, ব্রিন ব্যান্ডের প্যারামিটারগুলিকে সামঞ্জস্য করা যেতে পারে, স্টোক্যাস্টিক সূচক প্যারামিটার সমন্বয়কে অপ্টিমাইজ করা যেতে পারে এবং স্টপ পয়েন্টের ব্যবধানটি যথাযথভাবে বাড়ানো যেতে পারে।

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

এই দুই ধাপের স্টপ লস কৌশল আরও উন্নত করা যেতে পারেঃ

  1. বিভিন্ন প্যারামিটার সমন্বয় পরীক্ষা করা যায়, ব্রিন-ব্যান্ড প্যারামিটার এবং স্টোক্যাস্টিক প্যারামিটারগুলিকে অপ্টিমাইজ করা যায় এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পাওয়া যায়।

  2. বিভিন্ন স্টপস্টপ সেটিং পরীক্ষা করে, স্টপস্টপ আকারটি অপ্টিমাইজ করুন এবং সর্বোত্তম কনফিগারেশনটি সন্ধান করুন।

  3. অন্যান্য সূচক, যেমন চলমান গড়, যোগ করা যেতে পারে, যা একটি মাল্টি-ইনডিকেটর প্যাকেজ কৌশল গঠন করে, যা প্রবেশের নির্ভুলতা বাড়ায়।

  4. স্টপপয়েন্ট মুভমেন্টের বিভিন্ন লজিকের উপর গবেষণা করা যেতে পারে, যেমন প্রবেশ মূল্যের পরিবর্তে নির্দিষ্ট দূরত্বের বাইরে চলে যাওয়া।

  5. স্টপ লস পয়েন্ট মুভমেন্টের সংখ্যা বাড়ানো যেতে পারে এবং স্টপ লস মুভমেন্টের তিনটি বা তার বেশি ধাপ সেট করা যেতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 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/
// © fpsd4ve

//@version=5

// Add Bollinger Bands indicator (close, 20, 2) manually to visualise trading conditions
strategy("2xTP, SL to entry", 
     overlay=false,
     pyramiding=0,
     calc_on_every_tick=false,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=25,
     initial_capital=1000,
     commission_type=strategy.commission.percent,
     commission_value=0.01
     )

// PARAMETERS
// Assumes quote currency is FIAT as with BTC/USDT pair
tp1=input.float(200, title="Take Profit 1")
tp2=input.float(500, title="Take Profit 2")
sl=input.float(200, title="Stop Loss")
stOBOS = input.bool(true, title="Use Stochastic overbought/oversold threshold")

// Colors
colorRed = #FF2052
colorGreen = #66FF00


// FUNCTIONS
// Stochastic
f_stochastic() =>
    stoch = ta.stoch(close, high, low, 14)
    stoch_K = ta.sma(stoch, 3)
    stoch_D = ta.sma(stoch_K, 3)
    stRD = ta.crossunder(stoch_K, stoch_D)
    stGD = ta.crossover(stoch_K, stoch_D)
    [stoch_K, stoch_D, stRD, stGD]


// VARIABLES
[bbMiddle, bbUpper, bbLower] = ta.bb(close, 20, 2)
[stoch_K, stoch_D, stRD, stGD] = f_stochastic()


// ORDERS
// Active Orders
// Check if strategy has open positions
inLong = strategy.position_size > 0
inShort = strategy.position_size < 0
// Check if strategy reduced position size in last bar
longClose = strategy.position_size < strategy.position_size[1]
shortClose = strategy.position_size > strategy.position_size[1]

// Entry Conditions
// Enter long when during last candle these conditions are true:
// Candle high is greater than upper Bollinger Band
// Stochastic K line crosses under D line and is oversold
longCondition = stOBOS ?
     low[1] < bbLower[1] and stGD[1] and stoch_K[1] < 25 :
     low[1] < bbLower[1] and stGD[1]

// Enter short when during last candle these conditions are true:
// Candle low is lower than lower Bollinger Band
// Stochastic K line crosses over D line and is overbought
shortCondition = stOBOS ?
     high[1] > bbUpper[1] and stRD[1] and stoch_K[1] > 75 :
     high[1] > bbUpper[1] and stRD[1]

// Exit Conditions
// Calculate Take Profit 
longTP1 = strategy.position_avg_price + tp1
longTP2 = strategy.position_avg_price + tp2
shortTP1 = strategy.position_avg_price - tp1
shortTP2 = strategy.position_avg_price - tp2

// Calculate Stop Loss
// Initialise variables
var float longSL = 0.0
var float shortSL = 0.0

// When not in position, set stop loss using close price which is the price used during backtesting
// When in a position, check to see if the position was reduced on the last bar
// If it was, set stop loss to position entry price. Otherwise, maintain last stop loss value
longSL := if inLong and ta.barssince(longClose) < ta.barssince(longCondition)
    strategy.position_avg_price
else if inLong
    longSL[1]
else
    close - sl

shortSL := if inShort and ta.barssince(shortClose) < ta.barssince(shortCondition)
    strategy.position_avg_price
else if inShort
    shortSL[1]
else
    close + sl

// Manage positions
strategy.entry("Long", strategy.long, when=longCondition)
strategy.exit("TP1/SL", from_entry="Long", qty_percent=50, limit=longTP1, stop=longSL)
strategy.exit("TP2/SL", from_entry="Long", limit=longTP2, stop=longSL)

strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("TP1/SL", from_entry="Short", qty_percent=50, limit=shortTP1, stop=shortSL)
strategy.exit("TP2/SL", from_entry="Short", limit=shortTP2, stop=shortSL)


// DRAW
// Stochastic Chart
plot(stoch_K, color=color.blue)
plot(stoch_D, color=color.orange)

// Circles
plot(stOBOS ? stRD and stoch_K >= 75 ? stoch_D : na : stRD ? stoch_D : na, color=colorRed, style=plot.style_circles, linewidth=3)
plot(stOBOS ? stGD and stoch_K <= 25 ? stoch_D : na : stGD ? stoch_K : na, color=colorGreen, style=plot.style_circles, linewidth=3)

// Levels
hline(75, linestyle=hline.style_dotted)
hline(25, linestyle=hline.style_dotted)