এই কৌশলটি দ্রুত এবং ধীরে দুইটি Arnaud Legoux Moving Average ((ALMA) ব্যবহার করে ট্রেডিং সিগন্যালের বিচার করে। ALMA হল প্রচলিত মুভিং এভারেজের উন্নতি, যা পিছনে থাকা কমানো এবং কার্ভকে মসৃণ করে। কৌশলটি দ্রুত ALMA এর উপরে ধীর ALMA এর মাধ্যমে একটি কেনার সংকেত তৈরি করে, দ্রুত ALMA এর নীচে ধীর ALMA এর মাধ্যমে একটি বিক্রয় সংকেত তৈরি করে, এবং সমন্বিত ওভারকোয়ান্ট ফিল্টারিংয়ের সাথে একটি স্থিতিশীল ক্রস সংকেত তৈরি করে।
এই কৌশলটির মূল সূচক এবং ট্রেডিং নিয়ম নিম্নরূপঃ
দ্রুত ALMA: একটি ছোট সময়কাল, যা বিপর্যয়কে ধরার জন্য ব্যবহৃত হয়।
ধীর গতির ALMA: বড় প্রবণতা নির্ণয়ের জন্য দীর্ঘ সময়কাল।
ট্রানজিট ফিল্টারঃ স্বল্পমেয়াদী গড়ের উপরে দীর্ঘমেয়াদী গড় পরিধান করলে কার্যকর।
মাল্টি সিগন্যালঃ দ্রুত ALMA উপর ধীর ALMA এবং ট্রান্সফার ভলিউম ফিল্টারিং কার্যকর।
পিন্ডো সিগন্যালঃ দ্রুত আলমা, ধীর আলমা।
খালি সংকেতঃ দ্রুত ALMA এর নিচে ধীর গতির ALMA দিয়ে অতিক্রম করুন এবং ট্রান্সফার ভলিউম ফিল্টার কার্যকর করুন।
সমতল স্থল সংকেত: দ্রুত ALMA উপর ধীর ALMA
এই কৌশলটি সহজ এবং স্বজ্ঞাত, তবে ট্রেন্ড বিচার, ব্রেক ক্যাপচার এবং ট্রেডিং ভলিউম যাচাইয়ের মতো একাধিক প্রযুক্তিগত সূচককে একত্রিত করে একটি তুলনামূলকভাবে স্থিতিশীল ট্রেডিং সিস্টেম তৈরি করে। দ্রুত এবং ধীর গড়ের সমন্বয় কার্যকরভাবে ট্রেন্ডের দিক নির্ধারণ করতে পারে; আলমা অ্যালগরিদমের ব্যবহার ব্যবসায়ের উপর পিছিয়ে থাকার প্রভাবকে হ্রাস করে; ট্রেডিং ভলিউম যুক্ত করা অনেক অনিশ্চিত মিথ্যা ব্রেকআপ এড়ায়।
ঐতিহ্যবাহী সমান্তরাল ক্রস কৌশলগুলির তুলনায় এই কৌশলটির প্রধান সুবিধা হলঃ
আলমা অ্যালগরিদমের সাহায্যে কম বিলম্বের ফলে সংকেতের গুণগত মান উন্নত হয়।
ভলিউম ফিল্টারিং ভুয়া ব্রেকআউটের ক্ষতি এড়াতে পারে।
“অনুসন্ধান করুন” বা “অনুসন্ধান করুন” এর অর্থ হল “অনুসন্ধান করুন” বা “অনুসন্ধান করুন”।
নিয়মগুলি সহজ, স্বজ্ঞাত এবং সহজে বোঝা যায়।
গড় রেখা প্যারামিটারগুলি বিভিন্ন বাজারের জন্য নমনীয়ভাবে সামঞ্জস্য করা যায়।
তহবিল ব্যবস্থাপনা ব্যবস্থা যুক্তিসঙ্গত, একক ক্ষতি নিয়ন্ত্রণ করা যায়।
গড়রেখার পরামিতিগুলিকে অপ্টিমাইজ করে কৌশলটির কার্যকারিতা আরও বাড়ানো যায়।
সামগ্রিকভাবে, ঐতিহ্যবাহী মিডল ট্রান্সফার কৌশলগুলির তুলনায় এই কৌশলটি স্থিতিশীলতা এবং সংকেতের গুণমানকে উন্নত করেছে।
যদিও এই কৌশলটির অনেক সুবিধা রয়েছে, তবে নিম্নলিখিত ঝুঁকিগুলি সম্পর্কে সতর্কতা অবলম্বন করা উচিতঃ
গড়রেখার কৌশলগুলি স্বভাবতই বাজারের ঝড়ের জন্য ঝুঁকিপূর্ণ, যার ফলে একাধিক ক্ষতি হয়।
ALMA অ্যালগরিদমের প্যারামিটার সেটিংগুলি নীতির কার্যকারিতা প্রভাবিত করে।
লেনদেনের পরিমাণ বাড়ানোর প্রভাব ট্রেডিং সিগন্যালের বিচারকে বিভ্রান্ত করতে পারে।
তবে, কিছু লোকের মতে, এই ধরনের ব্যবস্থার ফলে ক্ষতির সম্ভাবনা কম।
প্যারামেট্রিক্স অপ্টিমাইজেশনের ঝুঁকি রয়েছে।
এই সংকেতটি অস্বাভাবিক অবস্থায় কাজ করবে না।
মেশিন লার্নিং এবং অন্যান্য অ্যালগরিদমের সাহায্যে আরও ভালো ফলাফল পাওয়া যেতে পারে।
আয়-ব্যবহারের অনুপাতের দিকে নজর দিন যাতে কার্ভটি খুব বেশি না হয়।
উপরোক্ত ঝুঁকির কারণগুলি বিবেচনা করে, এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
ALMA গড় পরিমাপ অনুকূলিতকরণ, প্রতিক্রিয়া সংবেদনশীলতা বৃদ্ধি।
বিভিন্ন উপায়ে লেনদেন গণনা করার চেষ্টা করুন।
স্টপ লস স্ট্র্যাটেজি চালু করুন এবং একক ক্ষতির উপর কঠোর নিয়ন্ত্রণ রাখুন।
অন্যান্য সূচক সমন্বয়ে একটি বিশিষ্ট ট্রেডিং সিগন্যাল সিস্টেম তৈরি করা।
মেশিন লার্নিং মডিউল যুক্ত করা হয়েছে, যা আরও বুদ্ধিমান সংকেত সমন্বয় করতে পারে।
এই প্রজন্মের জন্য, এই প্রজন্মের জন্য, এই প্রজন্মের জন্য, এই প্রজন্মের জন্য।
তহবিল ব্যবস্থাপনা কৌশল অপ্টিমাইজ করুন এবং বিভিন্ন বাজারের সাথে সামঞ্জস্য করুন।
“অতি উপযুক্ততা” প্রতিরোধে কৌশলগত দৃঢ়তা নিয়ে গবেষণা করা।
সামগ্রিকভাবে, এই কৌশলটি ALMA অ্যালগরিদম এবং ট্রেডিং ভলিউম যাচাইকরণের মাধ্যমে প্রচলিত সমান্তরাল ক্রস কৌশলগুলির তুলনায় সংকেতের গুণমান এবং স্থায়িত্বকে উন্নত করেছে। তবে ট্রেডিং কৌশলটি অপ্টিমাইজ করা একটি চলমান প্রক্রিয়া, ঝুঁকির বিষয়ে এখনও মনোযোগ দেওয়া প্রয়োজন, কৌশলটি বহু মাত্রিক থেকে উন্নত করা উচিত যাতে এটি আরও জটিল বাজার পরিবেশের সাথে খাপ খাইয়ে নিতে পারে।
/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 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/
// © Sarahann999
// Calculations for TP/SL based off: https://kodify.net/tradingview/orders/percentage-profit/
//@version=5
strategy("ALMA Cross", overlay=true)
//User Inputs
src= (close)
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')
//Fast Settings
ALMA1 = input(100, "ALMA Lenghth 1", group= "ALMA Fast Length Settings")
alma_offset = input.float(defval=0.85, title='Arnaud Legoux (ALMA) - Offset Value', minval=0, step=0.01)
alma_sigma = input.int(defval=6, title='Arnaud Legoux (ALMA) - Sigma Value', minval=0)
Alma1 = ta.alma(src, ALMA1, alma_offset, alma_sigma)
//Slow Settings
ALMA2 = input(120, "ALMA Length 2", group = "ALMA Slow Length Settings")
alma_offset2 = input.float(defval=0.85, title='Arnaud Legoux (ALMA) - Offset Value', minval=0, step=0.01)
alma_sigma2 = input.int(defval=6, title='Arnaud Legoux (ALMA) - Sigma Value', minval=0)
Alma2 = ta.alma(src, ALMA2, alma_offset2, alma_sigma2)
//Volume
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
runtime.error("No volume is provided by the data vendor.")
shortlen = input.int(5, minval=1, title = "Short Length", group= "Volume Settings")
longlen = input.int(10, minval=1, title = "Long Length")
short = ta.ema(volume, shortlen)
long = ta.ema(volume, longlen)
osc = 100 * (short - long) / long
//Define Cross Conditions
buy = ta.crossover(Alma1, Alma2)
sell = ta.crossunder(Alma1, Alma2)
//Calculate Take Profit Percentage
longProfitPerc = input.float(title="Long Take Profit", group='Take Profit Percentage',
minval=0.0, step=0.1, defval=2) / 100
shortProfitPerc = input.float(title="Short Take Profit",
minval=0.0, step=0.1, defval=2) / 100
// Figure out take profit price 1
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Make inputs that set the stop % 1
longStopPerc = input.float(title="Long Stop Loss", group='Stop Percentage',
minval=0.0, step=0.1, defval=2.5) / 100
shortStopPerc = input.float(title="Short Stop Loss",
minval=0.0, step=0.1, defval=2.5) / 100
// Figure Out Stop Price
longStopPrice = strategy.position_avg_price * (1 - longStopPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortStopPerc)
//Define Conditions
buySignal = buy and osc > 0
and strategy.position_size == 0
//sellSignal
sellSignal = sell and osc > 0
and strategy.position_size == 0
// Submit entry orders
if buySignal and long_entry
strategy.entry(id="Long", direction=strategy.long, alert_message="Enter Long")
alert(message="BUY Trade Entry Alert", freq=alert.freq_once_per_bar)
if sellSignal and short_entry
strategy.entry(id="Short", direction=strategy.short, alert_message="Enter Short")
alert(message="SELL Trade Entry Alert", freq=alert.freq_once_per_bar)
// Submit exit orders based on take profit price
if (strategy.position_size > 0)
strategy.exit(id="Long TP/SL", limit=longExitPrice, stop=longStopPrice, alert_message="Long Exit 1 at {{close}}")
if (strategy.position_size < 0)
strategy.exit(id="Short TP/SL", limit=shortExitPrice, stop=shortStopPrice, alert_message="Short Exit 1 at {{close}}")
//Draw
plot(Alma1,"Alma Fast", color=color.purple, style=plot.style_circles)
plot(Alma2,"Alma Slow", color=#acb5c2, style=plot.style_circles)