এই কৌশলটি একটি সহজ এবং কার্যকর ট্রেডিং কৌশল যা অ্যাসোসিয়েটর সূচক MACD এবং মুভিং এভারেজ ইএমএর সাথে মিলিত হয়। এটি বর্তমানে 4 ঘন্টা K- লাইন হিসাবে সেট করা হয়েছে এবং প্রয়োজন অনুসারে অন্যান্য সময়কালের সাথে সামঞ্জস্য করা যেতে পারে। এটি বিটকয়েন এবং ইথেরিয়ামে গত 3 বছরের ডেটাতে দুর্দান্ত পারফরম্যান্স করেছে, কেবলমাত্র হোল্ডিং কৌশলটির চেয়ে বেশি। এটি অপ্টিমাইজ এবং সংশোধন করে ফরেক্স, শেয়ার, ইক্যুইটি ইত্যাদি বাজারগুলিতে সামঞ্জস্য করা যেতে পারে।
এই কৌশলটি নিম্নলিখিত উপাদানগুলির দ্বারা গঠিতঃ
MACD সূচক: মূল্যের গতিশীলতার পরিবর্তন নির্ধারণ করা।
ইএমএ গড়: দামের প্রবণতার দিকনির্দেশনা।
সময়সীমাঃ নীতির কার্যকারিতার সময়সীমা সীমিত করুন।
অনেক জায়গা নির্বাচন করুনঃ আপনি আরো বা খালি দিক নির্বাচন করতে পারেন।
লেনদেনের নিয়মাবলী নিম্নে দেওয়া হলঃ
মুনাফা / ফাঁকাঃ যখন বন্ধের দাম ইএমএর চেয়ে বেশি থাকে, ম্যাকড কলামটি ইতিবাচক হয় এবং বর্তমান কে লাইনটি আগের দিনের চেয়ে বেশি হয় তখন মুনাফা / ফাঁকা।
খালি / সমান্তরালঃ যখন বন্ধের দাম ইএমএর নীচে থাকে, ম্যাকড কলামটি নেতিবাচক হয় এবং বর্তমান কে লাইনটি আগের দিনের চেয়ে কম থাকে তখন খালি / সমান্তরাল হয়।
এই কৌশলটি খুব সহজ এবং সংক্ষিপ্ত, এটি প্রবণতা এবং স্বল্পমেয়াদী ব্যবসায়িক চিন্তাভাবনাকে একত্রিত করে একটি কার্যকর পরিমাণগত সিদ্ধান্ত গ্রহণের সিস্টেম তৈরি করে।
একক সূচকের তুলনায় এই কৌশলটির প্রধান সুবিধাগুলি হলঃ
MACD স্বল্পমেয়াদী গতিশীলতা নির্ণয় করে, EMA প্রবণতা দিক নির্ণয় করে, সূচকটি ঘনিষ্ঠভাবে মিলিত হয়।
নিয়মগুলি সহজ, পরিষ্কার, সহজে বোঝা যায় এবং বাস্তবায়ন করা কঠিন নয়।
বিভিন্ন জাত এবং সময়কালের জন্য নমনীয়ভাবে প্যারামিটারগুলি সামঞ্জস্য করতে পারে।
আপনি একমুখী মুনাফা বা শূন্য মুনাফা বা দ্বি-মুখী মুনাফা করতে পারেন।
অপ্রয়োজনীয় লেনদেন এড়ানোর জন্য একটি কার্যকর সময়সীমা সেট করতে পারেন।
“অবশ্যই, আমরা আমাদের লক্ষ্যে পৌঁছাতে সক্ষম হয়েছি।
অর্থের ব্যবস্থাপনা নিয়ন্ত্রণে রাখা যায়, যাতে একক ক্ষতির পরিমাণ বেশি না হয়।
মেশিন লার্নিং প্রযুক্তি ব্যবহার করে অপ্টিমাইজেশান এবং উন্নতি করা যায়।
যদিও এই কৌশলটির অনেক সুবিধা রয়েছে, তবে নিম্নলিখিত ঝুঁকিগুলি সম্পর্কে সতর্কতা অবলম্বন করা উচিতঃ
প্যারামিটার অপ্টিমাইজেশনের পরিধি অনেক বেশি, এবং অপ্টিমাইজেশনের ঝুঁকিও অনেক বেশি।
স্টপ লস স্টপ সেট না করা, ক্ষতির বিস্তারের ঝুঁকি রয়েছে।
কিন্তু এই ব্যবসায়ের পরিমাণের উপর নির্ভর না করেই, ভুয়া ব্যবসায়ের প্রবণতা দেখা দিতে পারে।
ট্রেন্ডের বিপর্যয় চিহ্নিত করতে দেরী করা, যা পুরোপুরি ক্ষতি এড়াতে পারে না।
বাজারের পরিবর্তনের কারণে এর কার্যকারিতা হ্রাস পেতে পারে
শুধু ঐতিহাসিক তথ্যের উপর ভিত্তি করে মডেলের স্থায়িত্বের দিকে নজর দেওয়া উচিত।
ট্রেডিংয়ের ঘন ঘনতা বেশি এবং ট্রেডিংয়ের খরচ বেশি হতে পারে।
উপার্জন ও প্রত্যাহারের অনুপাতের দিকে নজর দিন, যাতে কার্ভটি খুব উঁচু না হয়।
উপরের বিশ্লেষণের ভিত্তিতে, এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
ভুয়া ব্রেকডাউন এড়ানোর জন্য ট্রানজিট সূচক যোগ করুন।
স্টপ লস স্টপ সেট আপ করুন এবং একক ক্ষতি নিয়ন্ত্রণ করুন।
বিভিন্ন সময়কালের পরামিতিগুলির প্রভাব মূল্যায়ন করুন।
মেশিন লার্নিং প্রযুক্তি ব্যবহার করে গতিশীল অপ্টিমাইজেশান তৈরি করা।
মাল্টি-মার্কেট যাচাইকরণ, স্থিতিশীলতা বৃদ্ধি।
পজিশনের আকার পরিবর্তন করুন এবং কম ট্রেড করুন।
তহবিল ব্যবস্থাপনা কৌশল অনুকূলিতকরণ
পরীক্ষামূলক মূল্য ব্যবধানের চুক্তি, আরও বেশি ঘন ঘন
ক্রমাগত পরীক্ষা-নিরীক্ষার মাধ্যমে অতিরিক্ত ফিট হওয়া প্রতিরোধ করা।
সামগ্রিকভাবে, এই কৌশলটি MACD এবং EMA সূচকগুলির সাথে মিলিত একটি সংক্ষিপ্ত এবং কার্যকর পরিমাণযুক্ত কৌশল গঠন করে। তবে যে কোনও কৌশলকে ক্রমাগত অপ্টিমাইজ করা এবং যাচাই করা প্রয়োজন যাতে এটি বাজারের পরিবেশের পরিবর্তনের সাথে সামঞ্জস্যপূর্ণ এবং স্থিতিশীল থাকতে পারে। ট্রেডিং কৌশলগুলি ক্রমাগত বিকশিত এবং আপডেট হওয়া দরকার।
// 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("My Script", overlay=true)
//heiking ashi calculation
UseHAcandles = input(false, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===
// === BASE FUNCTIONS ===
haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low
//timecondition
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 = 2020, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, 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)
time_cond = true
//ema data -- moving average
len = input(9, minval=1, title="Length")
src = input(hl2, title="Source")
out = ema(src, len)
//plot(out, title="EMA", color=color.blue)
//histogram
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//main variables to apply conditions are going to be out(moving avg) and hist(macd)
long = haClose > out and haClose > haClose[1] and out > out[1] and hist> 0 and hist[1] < 0 and time_cond
short = haClose < out and haClose < haClose[1] and out < out[1] and hist < 0 and hist[1] > 0 and time_cond
//limit to 1 entry
var longOpeneda = false
var shortOpeneda = false
var int timeOfBuya = na
longCondition= long and not longOpeneda
if longCondition
longOpeneda := true
timeOfBuya := time
longExitSignala = short
exitLongCondition = longOpeneda[1] and longExitSignala
if exitLongCondition
longOpeneda := false
timeOfBuya := na
plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="BUY", text="BUY", textcolor=color.white)
plotshape(exitLongCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="SELL", text="SELL", textcolor=color.white)
//automatization
longEntry= input(true)
shortEntry=input(false)
if(longEntry)
strategy.entry("long",strategy.long,when=longCondition)
strategy.close("long",when=exitLongCondition)
if(shortEntry)
strategy.entry("short",strategy.short,when=exitLongCondition)
strategy.close("short",when=longCondition)