এই কৌশলটি একাধিক শতাংশ স্টপ-এক্সিট সেট করার কার্যকারিতা উপলব্ধ করে। কৌশলটি প্রথমে দীর্ঘ শর্তাদি বিচার করে, প্রবেশের জন্য আরও খালি করে দেয়। তারপরে একটি কাস্টমাইজড শতাংশ হিসাবে পয়েন্ট ফাংশন দ্বারা শতাংশগুলিকে মূল্য পয়েন্টে রূপান্তর করে। প্রোগ্রামটি সেট করা 1%, 2%, 3% এবং 4% স্টপ-এক্সিট শতাংশ অনুসারে 4 টি প্রস্থান সেট করে, পাশাপাশি একটি সাধারণ 2% স্টপ-এক্সিটও সেট করে। এইভাবে একাধিক শতাংশ স্টপ-এক্সিটের কার্যকারিতা উপলব্ধ হয়।
এই কৌশলটি মূলত এসএমএ গড়রেখার বহুভুজ ক্রস দ্বারা প্রবেশের বিচার করে। বিশেষত, যখন দ্রুত লাইন এসএমএ 14 এর উপরে ধীর লাইন এসএমএ 28 অতিক্রম করে তখন বেশি প্রবেশ করা হয়; যখন দ্রুত লাইন এসএমএ 14 এর নীচে ধীর লাইন এসএমএ 28 অতিক্রম করে তখন প্রবেশ করা হয়।
এখন প্রশ্ন হল, কিভাবে একাধিক শতাংশ স্টপ এক্সট সেট করবেন? এখানে একটি কাস্টম percentAsPoints ফাংশন ব্যবহার করে শতাংশকে মূল্য পয়েন্টে রূপান্তর করা হয়, ফাংশনটির লজিক হল:
percentAsPoints(pcnt) =>
strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
এই ফাংশনটি যদি হোল্ডিংয়ের পরিমাণ 0 না হয় তবে শতাংশের ব্যবহার করে হোল্ডিংয়ের গড় মূল্যের সাথে গুণ করুন এবং তারপরে সর্বনিম্ন দামের সাথে ভাগ করুন, যাতে দামের পয়েন্টগুলি পাওয়া যায়। যদি হোল্ডিংয়ের পরিমাণ 0 হয় তবে এটি n ফিরে আসে।
এই ফাংশনটি দিয়ে আমরা সহজেই শতাংশ পয়েন্ট রূপান্তর করতে পারি। তারপর প্রোগ্রামটি সেটিং অনুযায়ী ১%, ২%, ৩% এবং ৪% স্টপ সেট করে ৪টি এক্সটঃ
lossPnt = percentAsPoints(2)
strategy.exit("x1", qty_percent = 25, profit = percentAsPoints(1), loss = lossPnt)
strategy.exit("x2", qty_percent = 25, profit = percentAsPoints(2), loss = lossPnt)
strategy.exit("x3", qty_percent = 25, profit = percentAsPoints(3), loss = lossPnt)
strategy.exit("x4", profit = percentAsPoints(4), loss = lossPnt)
একই সময়ে, সমস্ত প্রস্থান একটি সাধারণ 2% স্টপ লস ব্যবহার করে। এটি একাধিক শতাংশ স্টপ-অফের প্রভাব অর্জন করে।
এই কৌশলটি নিম্নলিখিত সুবিধাগুলির সাথে আসেঃ
এই কৌশলটি ঝুঁকি-লাভের ভারসাম্য বজায় রাখতে পারে।
ব্যাটেলিং স্টপ কিলার মূলধন ফেরত দিতে পারে, ঝুঁকি কমাতে পারে। উদাহরণস্বরূপ, 25% ব্যাটেলিং সেট করুন, যখন মুনাফা 1% হয় তখন মূলধনের 1⁄4 ফিরে পেতে পারেন। পরবর্তী পজিশনগুলি মুনাফা ভিত্তিক অপারেশন।
২% স্টপডাউনের ফলে চরম পরিস্থিতিতে প্রচুর লোকসান এড়ানো যায়।
কোডটি সহজ, পরিষ্কার, সহজে বোঝা যায়, পরিবর্তন করা এবং অপ্টিমাইজ করা সহজ। কাস্টম ফাংশন শতাংশকে পয়েন্টে রূপান্তর করে এবং কোডের কয়েক লাইন পরে একাধিক স্টপ সেট করতে পারে।
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
শতকরা স্টপ স্টপগুলি হ’ল প্রান্তিক ঝাঁকুনি, যেখানে দামগুলি স্টপ স্টপের কাছাকাছি ওভারল্যাপ করে। এটি প্রায়শই স্টপ স্টপ ক্ষতির সূত্রপাত করে, ট্রেডিং ফ্রিকোয়েন্সি এবং ফীজ বোঝা বাড়ায়।
ব্যাটারী বন্ধ করার ফলে লেনদেনের সংখ্যা বৃদ্ধি পায় এবং ফীজের বোঝাও বেড়ে যায়। যদি ফীজ বেশি হয়, তবে আংশিক বন্ধের মুনাফা বন্ধ হয়ে যায়।
ভুল স্টপপয়েন্ট সেট করাও রিটার্নের হারকে প্রভাবিত করে। যদি সেট করা হয় খুব রক্ষণশীল, তবে সন্তুষ্ট রিটার্ন পাওয়া কঠিন হবে; এবং যদি সেট করা হয় খুব চরম, তবে ঝুঁকি খুব বেশি।
স্থির শতাংশ স্টপ, বাজারের অস্থিরতা এবং প্রবণতা বিবেচনা না করে। ঝড়ের পরিস্থিতিতে স্টপ হ্রাস করা উচিত, এবং প্রবণতার পরিস্থিতিতে স্টপ হ্রাস করা উচিত।
উপরের ঝুঁকির কথা বিবেচনা করে, নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজেশান চালিয়ে যাওয়া যেতে পারেঃ
স্টপ স্টপ কৌশলগুলিকে অপ্টিমাইজ করুন যাতে এটি বাজার ওঠানামা এবং প্রবণতা অনুসারে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করতে পারে। যেমন এটিআর স্টপ যোগ করা, ঝড়ের সময় স্টপ স্টপ শক্ত করা, প্রবণতার সময় স্টপ স্টপ শিথিল করা।
ঝুঁকি-লাভের সর্বোত্তম সমন্বয় অর্জনের জন্য ব্যাচ-স্টপিংয়ের অনুপাত এবং মাত্রা অনুকূলিত করুন। প্যারামিটার অপ্টিমাইজেশান ফাংশন যুক্ত করুন যাতে সর্বোত্তম প্যারামিটারগুলি খুঁজে পাওয়া যায়।
স্টপ হ্রাস করুন এবং খুব ঘন ঘন লেনদেন এড়িয়ে চলুন। উদাহরণস্বরূপ, দামের একটি বাফার জোন সেট করুন, কেবলমাত্র একটি নির্দিষ্ট ব্যাপ্তি অতিক্রম করার পরে স্টপ করুন।
যদি আপনি মনে করেন যে আপনার অ্যাকাউন্টের মুনাফার হার আপনার অ্যাকাউন্টের মুনাফার চেয়ে কম, তাহলে আপনার অ্যাকাউন্টের মুনাফার হারকে বাড়িয়ে তুলুন।
বুকমার্ক স্টপ ক্যাশ ব্যবহার করুন। গভীরতা অগ্রাধিকার স্টপ গভীরতা অগ্রাধিকার মূল্য অগ্রাধিকার অফার অনুযায়ী, স্টপ মূল্য স্থানান্তর এড়ানো।
এই কৌশলটি একাধিক শতাংশ স্টপ-অফের কার্যকারিতা অর্জন করে, ১%, ২%, ৩% এবং ৪% চারটি স্টপ-অফ এক্সট, যা প্রতি বিভাগে স্টপ-অফ করতে পারে, এবং একই সাথে ২% স্টপ-অফের মাধ্যমে অস্বাভাবিক পরিস্থিতিতে বিশাল ক্ষতি রোধ করতে পারে। এই কৌশলটি ঝুঁকি-লাভের ভারসাম্য বজায় রাখতে পারে এবং আরও লাভজনক সুযোগগুলি মিস করা থেকে রক্ষা করতে পারে। তবে কিছু ঝুঁকিও রয়েছে, যেমন ক্রস-স্কিপ স্লাইড তৈরি করা সহজ, ট্রেডিং ফ্রিকোয়েন্সি বাড়ানো ইত্যাদি। এই পরামর্শগুলি কৌশলটি অপ্টিমাইজ করার জন্য বিবেচনা করা উচিত যাতে এটি আরও বেশি বাজারে স্থিতিশীলভাবে কাজ করতে পারে।
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 3h
basePeriod: 15m
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/
// © adolgov
//@version=4
strategy("Multiple %% profit exits example", overlay=false, default_qty_value = 10)
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
percentAsPoints(pcnt) =>
strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
lossPnt = percentAsPoints(2)
strategy.exit("x1", qty_percent = 25, profit = percentAsPoints(1), loss = lossPnt)
strategy.exit("x2", qty_percent = 25, profit = percentAsPoints(2), loss = lossPnt)
strategy.exit("x3", qty_percent = 25, profit = percentAsPoints(3), loss = lossPnt)
strategy.exit("x4", profit = percentAsPoints(4), loss = lossPnt)
profitPercent(price) =>
posSign = strategy.position_size > 0 ? 1 : strategy.position_size < 0 ? -1 : 0
(price - strategy.position_avg_price) / strategy.position_avg_price * posSign * 100
p1 = plot(profitPercent(high), style=plot.style_linebr, title = "open profit % upper bound")
p2 = plot(profitPercent(low), style=plot.style_linebr, title = "open profit % lower bound")
fill(p1, p2, color = color.red)