একটি দৃঢ় এবং শক্তিশালী মুভিং এভারেজ সিস্টেম কৌশল


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

একটি দৃঢ় এবং শক্তিশালী মুভিং এভারেজ সিস্টেম কৌশল

ওভারভিউ

এই কৌশলটি 4 টি ভিন্ন পিরিয়ডের উপর ভিত্তি করে একটি এসএমএমএ (একটি মসৃণ চলমান গড়) এবং একটি ইএমএ সূচকের উপর ভিত্তি করে একটি চলমান গড় সিস্টেম। এটি প্রবণতা বিচার করে ট্রেডিং কৌশল তৈরি করার জন্য একাধিক সিকিউরিটি প্রযুক্তিগত বিশ্লেষণ সরঞ্জামগুলির সাথে মিলিত হয়। এই কৌশলটি মূলত উচ্চ-লিভারেজ অ্যাকাউন্টের EURUSD 15 মিনিটের বন্ডের জন্য দিনের ব্যবসায়ের জন্য উপযুক্ত।

কৌশল নীতি

এই কৌশলটি 4 টি ভিন্ন প্যারামিটার এসএমএমএ ((3, 6, 9, 50) এবং একটি ইএমএ ((200) ব্যবহার করে একটি বহুমুখী মুভিং এভারেজ সিস্টেম তৈরি করে। এসএমএমএ সূচকগুলি কার্যকরভাবে বাজার শব্দকে ফিল্টার করে এবং প্রবণতা দিকনির্দেশনা দেয়। ইএমএ সূচকগুলি দীর্ঘমেয়াদী প্রবণতা সনাক্ত করে। নির্দিষ্ট ট্রেডিং লজিক হলঃ

যখন একটি স্বল্প সময়ের চলমান গড় (যেমন 3 পিরিয়ডের এসএমএমএ) একটি দীর্ঘ সময়ের চলমান গড় (যেমন 200 পিরিয়ডের ইএমএ) অতিক্রম করে তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন একটি স্বল্প সময়ের চলমান গড় একটি দীর্ঘ সময়ের চলমান গড় অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। এটি একাধিক চলমান গড়ের সজ্জিত সম্পর্ক বিচার করে প্রবণতা দিক নির্ধারণ করে।

এছাড়াও, কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য একটি স্টপ-স্টপ পয়েন্ট নির্ধারণ করে।

সামর্থ্য বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হলঃ

  1. মাল্টি-লেভেলের মুভিং এভারেজ কাঠামোটি ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করতে এবং মিথ্যা সংকেত হ্রাস করতে সহায়তা করে।

  2. এসএমএমএ সূচক কার্যকরভাবে বাজার শব্দ ফিল্টার করে, ইএমএ সূচক দীর্ঘ লাইন প্রবণতা সনাক্ত করে।

  3. উচ্চ লিভারেজযুক্ত অ্যাকাউন্টের জন্য উপযুক্ত, যা ট্রেডিংয়ের লাভ বাড়িয়ে তুলতে পারে।

  4. স্টপ-অফ-লস পয়েন্ট সেট করা হয়েছে, যা ঝুঁকিকে কার্যকরভাবে নিয়ন্ত্রণ করতে পারে।

  5. ট্রেডিং ভেরিয়েন্ট (EURUSD) এবং সময়কাল (১৫ মিনিট) অপ্টিমাইজ করা হয়েছে যাতে এটি আরও সুবিধাজনক হয়।

ঝুঁকি বিশ্লেষণ

এই কৌশলটি নিম্নলিখিত ঝুঁকিগুলিও বহন করেঃ

  1. অনেক সময় চলন্ত গড় ব্যবহার করা হয়, যার ফলে স্বল্পমেয়াদী বিপরীতমুখী সুযোগ মিস করা যায়।

  2. উচ্চতর লিভারেজ ক্ষতির সাথে সাথে লাভের মাত্রা বাড়িয়ে দেয়।

  3. মুভিং এভারেজ সিগন্যালের সময়, স্বল্পমেয়াদী ট্রেডিং ইতোমধ্যে বিপরীতমুখী হতে পারে।

  4. EUR/USD এর বিনিময় হারে তীব্র ওঠানামা হতে পারে, যা আরও বেশি ঝুঁকি সৃষ্টি করে।

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

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

এই কৌশলটির প্রধান অপ্টিমাইজেশান দিকগুলি হলঃ

  1. বিভিন্ন জাত এবং চক্রের কর্মক্ষমতা মূল্যায়ন করুন এবং সর্বোত্তম প্যারামিটার নির্বাচন করুন।

  2. বিভিন্ন প্যারামিটার সমন্বয় এবং সংখ্যার চলমান গড় পরীক্ষা করুন।

  3. গতিশীল সমন্বয় যা স্টপ লস মাত্রা বৃদ্ধি করে।

  4. এনইউ সূচকের সাথে যোগদানের একটি বিপর্যয়।

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
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/
// © SoftKill21

//@version=4
strategy("Money maker EURUSD 15min" )
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 8, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
 


startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)




len = input(3, minval=1, title="Length")
src = input(hl2, title="Source")
smma = 0.0
sma1 = sma(src, len)
smma := na(smma[1]) ? sma1 : (smma[1] * (len - 1) + src) / len

len2 = input(6, minval=1, title="Length")
src2 = input(hl2, title="Source")
smma2 = 0.0
sma2 = sma(src2, len2)
smma2 := na(smma2[1]) ? sma2 : (smma2[1] * (len2 - 1) + src2) / len2

len3 = input(9, minval=1, title="Length")
src3 = input(hl2, title="Source")
smma3 = 0.0
sma3 = sma(src3, len3)
smma3 := na(smma3[1]) ? sma3 : (smma3[1] * (len3 - 1) + src3) / len3

len4 = input(50, minval=1, title="Length")
src4 = input(close, title="Source")
smma4 = 0.0
sma4 = sma(src4, len4)
smma4 := na(smma4[1]) ? sma4  : (smma4[1] * (len4 - 1) + src4) / len4

len5 = input(200, minval=1, title="Length")
src5 = input(close, title="Source")
out5 = ema(src5, len5)

timeinrange(res, sess) => time(res, sess) != 0
london=timeinrange(timeframe.period, "0300-1045")
londonEntry=timeinrange(timeframe.period, "0300-0845")

extraEntry =timeinrange(timeframe.period, "0745-1030")

time_cond = true
//time_cond2 = time >= startDate and time <= finishDate and extraEntry

//

longCond = close > out5 and close > smma4 and close > smma3 and close > smma2 and close > smma  and smma > smma2 and smma2>smma3 and smma3>smma4 and smma4>out5 and time_cond
shortCond = close < out5 and close < smma4 and close < smma3 and close < smma2 and close < smma  and smma < smma2 and smma2<smma3 and smma3<smma4 and smma4<out5 and time_cond


//longCond = close > out5 and close > smma4 and close > smma3 and close > smma2 and close > smma  and smma > smma2 and smma2>smma3 and smma3>smma4 and smma4>out5 and time_cond2
//shortCond = close < out5 and close < smma4 and close < smma3 and close < smma2 and close < smma  and smma < smma2 and smma2<smma3 and smma3<smma4 and smma4<out5 and time_cond2

//longCond2 = crossover(close,out5) and crossover(close,smma4) and crossover(close,smma3) and crossover(close,smma2) and crossover(close,smma) and time_cond
//shortCond2 = crossunder(close,out5) and crossunder(close,smma4) and crossunder(close,smma3) and crossunder(close,smma2) and crossunder(close,smma) and time_cond



tp=input(300,title="tp")
sl=input(300,title="sl")

strategy.initial_capital  = 50000

//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(1,type=input.float,title="Risk %")/100           //risk % per trade


    //Calculate the size of the next trade
temp01 = balance * risk     //Risk in USD
temp02 = temp01/sl        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
    size := 1000           //Set min. lot size

dataL = (close-out5)*100000
dataS = (out5-close)*100000

minDistanceL = (smma4 - out5)*100000
minDistanceS= (out5 - smma4)*100000


strategy.entry("long",1,1,when=longCond )
strategy.exit("closelong","long", profit=tp,loss=sl)
    
strategy.entry("short",0,1,when=shortCond )
strategy.exit("closeshort","short", profit=tp,loss=sl)



strategy.close_all(when = not london, comment="london finish")
//strategy.close_all(when = not extraEntry, comment="london finish")



// maxEntry=input(2,title="max entries")
// strategy.risk.max_intraday_filled_orders(maxEntry)