রিসোর্স লোড হচ্ছে... লোডিং...

PSAR এবং EMA-ভিত্তিক পরিমাণগত ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০৫-২৮ ১১ঃ০০ঃ৪০
ট্যাগঃPSARইএমএআইজিসিআইআরসি

img

সারসংক্ষেপ

এই পরিমাণগত ট্রেডিং কৌশলটি মূলত ক্রসওভার সিগন্যালগুলি ব্যবহার করে প্যারাবলিক এসএআর (পিএসএআর) এবং এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) সূচকগুলি ক্রয় এবং বিক্রয় সংকেত তৈরি করতে একাধিক কাস্টম শর্তের সাথে মিলিত। কৌশলটির পিছনে মূল ধারণাটি হ'লঃ যখন পিএসএআর নীচে থেকে ইএমএর উপরে ভেঙে যায় এবং নির্দিষ্ট শর্তগুলি পূরণ করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়; যখন পিএসএআর উপরে থেকে ইএমএর নীচে পড়ে এবং নির্দিষ্ট শর্তগুলি পূরণ করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। অতিরিক্তভাবে, কৌশলটি ঝুঁকি পরিচালনার জন্য লাভ এবং স্টপ-লস স্তর সেট করে।

কৌশল নীতি

  1. পিএসএআর এবং ৩০ পেরিওড ইএমএ সূচক গণনা করুন
  2. PSAR এবং EMA এর মধ্যে ক্রসওভার সম্পর্ক নির্ধারণ করুন এবং সংশ্লিষ্ট পতাকা নির্ধারণ করুন
  3. আইজিসি (আইডিয়াল গ্রিন ক্যান্ডেল) এবং আইআরসি (আইডিয়াল রেড ক্যান্ডেল) সংজ্ঞায়িত করুন পিএসএআর এবং ইএমএর আপেক্ষিক অবস্থানের পাশাপাশি ক্যান্ডেলগুলির রঙের ভিত্তিতে
  4. আইজিসি এবং আইআরসির ঘটনার উপর ভিত্তি করে ক্রয় এবং বিক্রয় সংকেত তৈরি করুন
  5. ক্রয় মূল্যের উপরে ৮%, ১৬% এবং ৩২% লাভের স্তর এবং ক্রয় মূল্যের নিচে ১৬% স্টপ লস স্তর নির্ধারণ করুন; বিক্রয় মূল্যের নিচে ৮%, ১৬% এবং ৩২% লাভের স্তর এবং বিক্রয় মূল্যের উপরে ১৬% স্টপ লস স্তর নির্ধারণ করুন
  6. ট্রেডিং সেশন এবং পজিশনের স্থিতির উপর ভিত্তি করে ক্রয়, বিক্রয় বা বন্ধ পজিশনগুলি সম্পাদন করুন

কৌশলগত সুবিধা

  1. সিগন্যাল নির্ভরযোগ্যতা উন্নত করার জন্য একাধিক সূচক এবং শর্তাবলী একত্রিত করে
  2. নমনীয় ঝুঁকি এবং রিটার্ন ম্যানেজমেন্টের জন্য একাধিক লাভ এবং স্টপ-লস স্তর সেট করুন
  3. বিভিন্ন বাজারের পরিস্থিতির উপর ভিত্তি করে ক্রয় এবং বিক্রয় শর্তের জন্য ফিল্টার স্থাপন করে, কৌশলটির অভিযোজনযোগ্যতা বাড়ায়
  4. অত্যন্ত মডুলারাইজড কোড, যা বোঝা এবং পরিবর্তন করা সহজ করে তোলে

কৌশলগত ঝুঁকি

  1. কৌশলটির পরামিতি সেটিংগুলি সমস্ত বাজারের পরিবেশের জন্য উপযুক্ত নাও হতে পারে এবং প্রকৃত অবস্থার উপর ভিত্তি করে সামঞ্জস্য করতে হবে
  2. অস্থির বাজারে, কৌশলটি ঘন ঘন ট্রেডিং সংকেত তৈরি করতে পারে, যার ফলে ট্রেডিং খরচ বৃদ্ধি পায়
  3. কৌশলটি বাজারের প্রবণতা সম্পর্কে বিচার করে না এবং শক্তিশালী প্রবণতা বাজারে সুযোগগুলি মিস করতে পারে
  4. স্টপ-লস সেটিংগুলি চরম বাজারের অবস্থার ঝুঁকিগুলি সম্পূর্ণরূপে এড়াতে পারে না

কৌশল অপ্টিমাইজেশান নির্দেশাবলী

  1. সিগন্যালের নির্ভুলতা এবং নির্ভরযোগ্যতা উন্নত করার জন্য আরও প্রযুক্তিগত সূচক বা বাজার আবেগ সূচক প্রবর্তন করুন
  2. ডায়নামিক টেক-প্রফিট/স্টপ-লস বা ভোল্টেবিলিটি-ভিত্তিক টেক-প্রফিট/স্টপ-লসের বাস্তবায়ন বিবেচনা করে লাভ এবং স্টপ-লসের স্তরের সেটিংগুলি অপ্টিমাইজ করা
  3. কৌশলটির অভিযোজনযোগ্যতা বাড়ানোর জন্য বিভিন্ন বাজারের অবস্থার জন্য বিভিন্ন ট্রেডিং পরামিতি এবং নিয়ম নির্ধারণ করুন
  4. অ্যাকাউন্ট ইক্যুইটি রেসিও এবং ব্যালেন্সের মতো কারণের উপর ভিত্তি করে অবস্থান এবং ঝুঁকি এক্সপোজারকে গতিশীলভাবে সামঞ্জস্য করার জন্য একটি অর্থ পরিচালনার মডিউল অন্তর্ভুক্ত করুন

সংক্ষিপ্তসার

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


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SwapnilRaykar

//@version=5
strategy("aj sir second project", overlay=true, margin_long=100, margin_short=100)

start=input("0915-1515","session time")
st11=time(timeframe.period,start)
st=st11>0
et= not st 

psar=ta.sar(0.02,0.02,0.2)
emared=ta.ema(close,30)
//plot(psar,"psar",color.yellow,style = plot.style_cross)
//plot(emared,"emared",color.red)
var crodownflag=0
var croupflag=0

var igcflag=0

var ircflag=0

cdown1=ta.crossunder(psar,emared)  and not (psar<close and psar[1]>close[1])
cup1=ta.crossover(psar,emared) and not (psar>close and psar[1]<close[1])

cdown=ta.crossunder(psar,emared) 
cup=ta.crossover(psar,emared)


green_candle=close>open
red_candle=close<open

if ta.crossunder(psar,emared) and crodownflag==0  and not (psar<close and psar[1]>close[1])
    crodownflag:=1
else if cdown and crodownflag==1
    crodownflag:=0



if crodownflag==1 and green_candle and igcflag==0
    igcflag:=1
else if cdown and igcflag==1
    igcflag:=0

//plot(igcflag,"igcflag",color.lime)

if ta.crossover(psar,emared) and croupflag==0 and not (psar>close and psar[1]<close[1])
    croupflag:=1
else if cdown and croupflag==1
    croupflag:=0

//plot(crodownflag,"crodownflag",color.white)
irc_cond=croupflag==1 or cup

if (croupflag==1 and red_candle and ircflag==0)
    ircflag:=1
else if cup and croupflag==1
    ircflag:=0

igc_candle1=(igcflag==1 and igcflag[1]==0) or (cdown1 and green_candle)
irc_candle1=(ircflag==1 and ircflag[1]==0) or (cup1 and red_candle)
///////////////////////////
dm=dayofmonth(time)
newday=dm!=dm[1]
dmc=dm==ta.valuewhen(bar_index==last_bar_index,dm,0)

///////////////////////////////////////////
var irc_there=0

if irc_candle1[1] and irc_there==0
    irc_there:=1
else if cdown and irc_there==1
    irc_there:=0

irc_candle=irc_candle1 and irc_there==0// and dmc

var igc_there=0

if igc_candle1[1] and igc_there==0
    igc_there:=1
else if cup and igc_there ==1
    igc_there:=0

igc_candle=igc_candle1 and igc_there==0// and dmc
/////////// to get rid of irc being valid even after crossdown
var valid_igc_low=0
var valid_irc_high=0

if irc_candle[1] and valid_irc_high==0
    valid_irc_high:=1
else if igc_candle and valid_irc_high==1
    valid_irc_high:=0

if igc_candle and valid_igc_low==0
    valid_igc_low:=1
else if irc_candle and valid_igc_low==1
    valid_igc_low:=0


igc_low=ta.valuewhen(igc_candle,low,0)
irc_high=ta.valuewhen(irc_candle,high,0)
//////////////////////////////
//plot(irc_high,"irc_high",color.red)

//plot(valid_irc_high,"valid_irc_high",color.purple)

buy12=ta.crossunder(close,igc_low) and valid_igc_low==1
buy1=buy12[1]

short12=ta.crossover(close,irc_high) and valid_irc_high==1
short1=short12[1]
//plotshape(short12,"short12",shape.arrowdown,color=color.purple)

// plotshape(igc_candle,"igc_candle",shape.arrowdown,color=color.green)
// plotshape(irc_candle,"irc_candle",shape.arrowdown,color=color.red)
//plotshape((psar<close and psar[1]>close[1]) ,"croup",shape.arrowdown,color=color.red)
//plotshape(cup ,"croup",shape.arrowdown,color=color.orange)

buyprice=ta.valuewhen(buy1 and strategy.position_size[1]==0,open,0)
shortprice=ta.valuewhen(short1 and strategy.position_size[1]==0,open,0)

btarget1=buyprice+(buyprice*0.08)
btarget2=buyprice+(buyprice*0.16)
btarget3=buyprice+(buyprice*0.32)
bstoploss=buyprice-(buyprice*0.16)

starget1=shortprice-(shortprice*0.08)
starget2=shortprice-(shortprice*0.16)
starget3=shortprice-(shortprice*0.32)
sstoploss=shortprice+(shortprice*0.16)

if buy12 and strategy.position_size==0 and st11
    strategy.entry("buy",strategy.long)

if strategy.position_size >0
    strategy.exit("sell",from_entry = "buy",stop=bstoploss,limit=btarget3)

if short12 and strategy.position_size==0 and st11
    strategy.entry("short",strategy.short)

if strategy.position_size<0
    strategy.exit("cover",from_entry = "short",stop = sstoploss,limit = starget3)

if et
    strategy.close_all(comment = "timeover")

plot(strategy.position_size>0?buyprice:na,"buyprice",color.white, style=plot.style_circles )
plot(strategy.position_size>0?bstoploss:na,"bstoploss",color.red, style=plot.style_circles )
plot(strategy.position_size>0?btarget1:na,"btarget1",color.green, style=plot.style_circles )
plot(strategy.position_size>0?btarget2:na,"btarget2",color.green, style=plot.style_circles )
plot(strategy.position_size>0?btarget3:na,"btarget3",color.green, style=plot.style_circles )

plot(strategy.position_size<0?shortprice:na,"shortprice",color.white, style=plot.style_circles )
plot(strategy.position_size<0?sstoploss:na,"sstoploss",color.red, style=plot.style_circles )
plot(strategy.position_size<0?starget1:na,"starget1",color.green, style=plot.style_circles )
plot(strategy.position_size<0?starget2:na,"starget2",color.green, style=plot.style_circles )
plot(strategy.position_size<0?starget3:na,"starget3",color.green, style=plot.style_circles )


সম্পর্কিত

আরো