चार संकेतक गति पलटने की रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-27 15:51:01
टैगः

img

अवलोकन

यह रणनीति तीन मुख्यधारा के तकनीकी संकेतकों का उपयोग करती हैः चलती औसत ईएमए, सापेक्ष शक्ति सूचकांक आरएसआई और कमोडिटी चैनल सूचकांक सीसीआई ईएमए क्रॉसओवर और आरएसआई और सीसीआई से ओवरसोल्ड/ओवरबॉट रीडिंग द्वारा पुष्टि की गई आगे की प्रविष्टियों के माध्यम से मूल्य गति की पहचान करने के लिए। यह मध्यवर्ती अवधि की ट्रेडिंग रणनीति का उद्देश्य गति के उलट को पकड़ना है।

रणनीति तर्क

  1. मूल्य गति निर्धारित करने के लिए 4-अवधि और 8-अवधि ईएमए के बीच क्रॉसओवर का उपयोग करें तेजी से प्रतिक्रिया करने के लिए तेज 4-अवधि ईएमए और पुष्टि करने के लिए धीमी 8-अवधि ईएमए;

  2. जब ईएमए ऊपर की ओर मुड़ता है, अर्थात 4-पीरियड ईएमए 8-पीरियड ईएमए से ऊपर जाता है, तो जांचें कि आरएसआई (65 से ऊपर) और सीसीआई (0 से ऊपर) ओवरबॉट नहीं हैं ताकि एक लंबा संकेत दिया जा सके;

  3. जब ईएमए नीचे की ओर मुड़ता है, अर्थात 4-पीरियड ईएमए 8-पीरियड ईएमए से नीचे की ओर बढ़ता है, तो यह जांचें कि आरएसआई (35 से नीचे) और सीसीआई (0 से नीचे) ओवरसोल्ड हैं ताकि शॉर्ट सिग्नल दिया जा सके।

  4. व्यापार संकेतों को ट्रिगर करने के बाद इनपुट दूरी के आधार पर स्टॉप लॉस और ले लाभ की कीमतें सेट करें।

संक्षेप में, यह रणनीति मध्यम अवधि के रुझान और अल्पकालिक ओवरबॉट/ओवरसोल्ड स्तरों को अपेक्षाकृत स्थिर संकेतों के रूप में मानती है, जबकि स्टॉप लॉस और ले लाभ प्रभावी रूप से प्रति व्यापार हानि को सीमित करते हैं।

लाभ विश्लेषण

  1. एकाधिक संकेतक व्यक्तिगत ऑसिलेटरों से झूठे संकेतों को कम करते हैं;

  2. ईएमए मुख्य प्रवृत्ति निर्धारित करते हैं जबकि आरएसआई और सीसीआई जीत दर में सुधार के लिए अति गर्म क्षेत्रों से बचते हैं;

  3. स्वचालित स्टॉप लॉस और टेक प्रॉफिट सेटअप चरम चाल में हानि को सीमित करता है;

  4. विशुद्ध रूप से तकनीकी प्रकृति इस रणनीति को किसी भी समय सीमा में आसानी से लागू करने योग्य बनाती है।

जोखिम विश्लेषण

  1. प्रमुख मौलिक समाचार तकनीकी स्तरों को ओवरराइड कर सकते हैं;

  2. स्टॉप लॉस को व्यापक स्टॉप के लिए भारी अस्थिरता कॉल द्वारा लिया जा सकता है;

  3. बार-बार व्यापार करने से लेनदेन की लागत बढ़ जाती है, इसलिए उच्च आवृत्ति वाले एल्गोरिदम के लिए छोड़ दिया जाता है।

बढ़ोतरी के अवसर

  1. बुनियादी बातों के आधार पर स्वचालित रूप से समायोज्य मापदंडों के लिए मशीन लर्निंग मॉडल को शामिल करना;

  2. स्थिर दूरी के बजाय अस्थिरता पर प्रतिक्रिया करने वाले अनुकूलनशील स्टॉप बनाएं।

निष्कर्ष

यह बहुआयामी रणनीति अनुकूलित मापदंडों के तहत लगातार मध्यम अवधि के लाभ प्रदान कर सकती है, जिससे यह एक सुलभ तकनीकी प्रणाली बन जाती है। फिर भी, विस्तारित स्टॉप आदि के माध्यम से ब्लैक स्वान घटनाओं को भत्ता देने की आवश्यकता है, जो चल रहे परिष्करण के लिए क्षेत्र प्रस्तुत करते हैं।


/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 00:00:00
period: 45m
basePeriod: 5m
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(title="Moving Average Exponential", shorttitle="EMA", overlay=true)


len4 = input(4, minval=1, title="Length_MA4")
src4 = input(close, title="Source")
offset4 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out4 = ema(src4, len4)
plot(out4, title="EMA", color=color.blue, offset=offset4)

len8 = input(8, minval=1, title="Length_MA8")
src8 = input(close, title="Source")
offset8 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out8 = ema(src8, len8)
plot(out8, title="EMA", color=color.blue, offset=offset8)


//rsioma
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(ema(src, len)), 0), len)
down = rma(-min(change(ema(src, len)), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//plot(rsi, color=color.blue)
//band1 = hline(80)
//band0 = hline(20)
//fill(band1, band0, color=color.purple, transp=90)
//hline(50, color=color.gray, linestyle=plot.style_line)
sig = ema(rsi, 21)
//plot(sig, color=color.purple)

//woodie
cciTurboLength = input(title="CCI Turbo Length", type=input.integer, defval=6, minval=3, maxval=14)
cci14Length = input(title="CCI 14 Length", type=input.integer, defval=14, minval=7, maxval=20)

source = close

cciTurbo = cci(source, cciTurboLength)
cci14 = cci(source, cci14Length)

last5IsDown = cci14[5] < 0 and cci14[4] < 0 and cci14[3] < 0 and cci14[2] < 0 and cci14[1] < 0
last5IsUp = cci14[5] > 0 and cci14[4] > 0 and cci14[3] > 0 and cci14[2] > 0 and cci14[1] > 0
histogramColor = last5IsUp ? color.green : last5IsDown ? color.red : cci14 < 0 ? color.green : color.red


// Exit Condition
// Exit Condition
a = input(12)*10
b = input(15)*10
c = a*syminfo.mintick
d = b*syminfo.mintick


longCondition = crossover(out4, out8) and (rsi >= 65 and cci14>=0)
shortCondition = crossunder(out4, out8) and (rsi <=35 and cci14<=0)


long_stop_level     = float(na)
long_profit_level1  = float(na)
long_profit_level2  = float(na)
long_even_level     = float(na)

short_stop_level    = float(na)
short_profit_level1 = float(na)
short_profit_level2 = float(na)
short_even_level    = float(na)

long_stop_level     := longCondition  ? close - c : long_stop_level     [1]
long_profit_level1  := longCondition  ? close + d : long_profit_level1  [1]
//long_profit_level2  := longCondition  ? close + d : long_profit_level2  [1]
//long_even_level     := longCondition  ? close + 0 : long_even_level     [1]

short_stop_level    := shortCondition ? close + c : short_stop_level    [1]
short_profit_level1 := shortCondition ? close - d : short_profit_level1 [1]
//short_profit_level2 := shortCondition ? close - d : short_profit_level2 [1]
//short_even_level    := shortCondition ? close + 0 : short_even_level    [1] 


//ha
// === Input ===
//ma1_len = input(1, title="MA 01")
//ma2_len = input(40, title="MA 02")

// === MA 01 Filter ===
//o=ema(open,ma1_len)
//cc=ema(close,ma1_len)
//h=ema(high,ma1_len)
//l=ema(low,ma1_len)

// === HA calculator ===
//ha_t = heikinashi(syminfo.tickerid)
//ha_o = security(ha_t, timeframe.period, o)
//ha_c = security(ha_t, timeframe.period, cc)
//ha_h = security(ha_t, timeframe.period, h)
//ha_l = security(ha_t, timeframe.period, l)

// === MA 02 Filter ===
//o2=ema(ha_o, ma2_len)
//c2=ema(ha_c, ma2_len)
//h2=ema(ha_h, ma2_len)
//l2=ema(ha_l, ma2_len)

// === Color def ===
//ha_col=o2>c2 ? color.red : color.lime

// ===  PLOTITING===
//plotcandle(o2, h2, l2, c2, title="HA Smoothed", color=ha_col)

tp=input(120)
sl=input(96)
    
strategy.entry("long", strategy.long, when = longCondition)
//strategy.close("long", when = o2>c2 , comment="ha_long")
strategy.entry("short", strategy.short , when =shortCondition )
//strategy.close("short", when = o2<=c2 , comment = "ha_short" )

//strategy.close("long",when=long_profit_level1 or long_stop_level  , comment="tp/sl")
//strategy.close("short",when=short_profit_level1 or short_stop_level , comment="tp/sl")

strategy.exit("x_long","long",profit = tp, loss = sl) //when = o2>c2)
strategy.exit("x_short","short",profit = tp, loss = sl) //when = o2<c2)



अधिक