ALMA ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ 2023-09-23 15:11:02
ট্যাগঃ

সারসংক্ষেপ

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

কৌশলগত যুক্তি

মূল সূচক এবং নিয়মগুলি হলঃ

  1. দ্রুত আলমা: পলাতক শনাক্ত করার জন্য কম সময়।

  2. ধীর ALMA: প্রবণতা পরিমাপ করার জন্য দীর্ঘ সময়কাল।

  3. ভলিউম ফিল্টারঃ সংক্ষিপ্ত EMA দীর্ঘ EMA এর উপরে অতিক্রম করলে বৈধ।

  4. ক্রয় সংকেতঃ দ্রুত ALMA ধীর ALMA এর উপরে অতিক্রম করে এবং ভলিউম ফিল্টার পাস করে।

  5. বিক্রয় সংকেতঃ দ্রুত ALMA ধীর ALMA এর নিচে ক্রস করে।

  6. সংক্ষিপ্ত সংকেতঃ দ্রুত ALMA ধীর ALMA এর নীচে অতিক্রম করে এবং ভলিউম ফিল্টার পাস করে।

  7. কভার সিগন্যালঃ দ্রুত ALMA ধীর ALMA এর উপরে অতিক্রম করে।

এই কৌশলটি শক্তিশালী সংকেতগুলির জন্য প্রবণতা, গতি এবং ভলিউম বিশ্লেষণকে একত্রিত করে। এলএএমএ বিলম্ব হ্রাস করে যখন ভলিউম মিথ্যা ব্রেকআউট এড়ায়।

সুবিধা

ঐতিহ্যগত চলমান গড় কৌশল তুলনায়, প্রধান সুবিধা হলঃ

  1. ALMA বিলম্ব হ্রাস করে এবং সংকেতের গুণমান উন্নত করে।

  2. ভলিউম ফিল্টার মিথ্যা ব্রেকআউট থেকে ক্ষতি এড়ায়।

  3. দ্রুত / ধীর কম্বো প্রবণতা দিক পরিমাপ।

  4. সহজ এবং স্বজ্ঞাত নিয়ম, বাস্তবায়ন করা সহজ।

  5. বিভিন্ন বাজারের জন্য এমএ পরামিতিগুলির নমনীয়তা।

  6. যুক্তিসঙ্গত ঝুঁকি ব্যবস্থাপনা।

  7. প্যারামিটার টিউনিংয়ের মাধ্যমে আরও অপ্টিমাইজেশান সম্ভাবনা।

  8. ঐতিহ্যবাহী ক্রসওভার কৌশলগুলির তুলনায় সামগ্রিকভাবে স্থিতিশীলতা এবং গুণমান উন্নত।

ঝুঁকি

উপকারিতা সত্ত্বেও, নিম্নলিখিত ঝুঁকিগুলি লক্ষ্য করা উচিতঃ

  1. ক্রসওভার সিস্টেমগুলি অভ্যন্তরীণভাবে whipsaws এর প্রতি সংবেদনশীল।

  2. ALMA এর কর্মক্ষমতা পরামিতি সমন্বয় উপর নির্ভর করে।

  3. ভলিউম স্পাইক সিগন্যাল জেনারেশনকে বিভ্রান্ত করতে পারে।

  4. কিছু বিলম্ব সবসময় বিদ্যমান, সব ক্ষতি এড়ানো সম্ভব নয়।

  5. অত্যধিক অপ্টিমাইজেশান থেকে অতিরিক্ত ফিটিং ঝুঁকি।

  6. ভলিউম অস্বাভাবিক হলে সিগন্যাল ব্যর্থ হয়।

  7. মেশিন লার্নিং কৌশলগুলি আরও ভাল ফলাফল তৈরি করতে পারে।

  8. অত্যধিক টান এড়াতে রিটার্ন/ঝুঁকি অনুপাত পর্যবেক্ষণ করুন।

উন্নতকরণ

ঝুঁকি মোকাবেলায়, নিম্নলিখিত ক্ষেত্রে উন্নতি করা যেতে পারেঃ

  1. আরও ভাল সংবেদনশীলতার জন্য ALMA প্যারামিটার অপ্টিমাইজ করুন।

  2. বিভিন্ন ভলিউম মেট্রিক্স দিয়ে পরীক্ষা করুন।

  3. ট্রেড প্রতি হ্রাস নিয়ন্ত্রণের জন্য স্টপ লস প্রবর্তন করুন।

  4. শক্তিশালী সংকেতের জন্য অন্যান্য সূচক অন্তর্ভুক্ত করুন।

  5. মেশিন লার্নিং মডিউল যোগ করুন স্মার্ট সিগন্যাল সমন্বয় জন্য.

  6. কৌশল বৈচিত্র্যের জন্য একাধিক পণ্য জুড়ে স্থাপন করুন।

  7. বিভিন্ন বাজারের জন্য পজিশন সাইজিং মডেল অপ্টিমাইজ করা।

  8. অতিরিক্ত ফিটিং রোধ করার জন্য স্থিতিস্থাপকতা গবেষণা করুন।

সিদ্ধান্ত

উপসংহারে, ঐতিহ্যগত ক্রসওভার কৌশলগুলির তুলনায়, এই কৌশলটি 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)

আরো