HA Противоположность рынка

Автор:Чао Чжан, Дата: 2022-05-09 14:07:28
Тэги:ЕМА

Здравствуйте все. Надеюсь, вы все отлично справляетесь. Прошло много времени с тех пор, как я опубликовал свой первый сценарий здесь, и я получил много ответа от этого.

Поэтому я подумал, что должен поделиться этим сценарием также со всеми, и любым, кто может найти его полезным.

Вот как я работаю: сценарий пытается определить общее направление рынка, используя сглаженные свечи Хайкена Аши. Система окраски (используя яркие и темные цвета) является попыткой обнаружить сильные и слабые рыночные условия. В сценарии также есть осциллятор, но пока он не изображен. Кредиты @jackvmk, я использовал часть его кода открытого сценария в этом индикаторе.

Я рассматривал возможность использования наклона графика индикатора в качестве фильтра для диапазона рыночных условий. График относительно плоский на плоских рынках. Однако я еще ничего не сделал по этому поводу. Может быть, в другой раз.

Если вы найдете способ использовать это, пожалуйста, поделитесь им с сообществом в разделе комментариев.

Примечание: это не финансовые советы. Вам придется изучить и придумать способ применения этого показателя к вашему стилю и стратегии торговли.

Кстати, я буду использовать имя CEREBR для любых последующих сценариев, которые выпущу с этого момента.

обратная проверка

img


/*backtest
start: 2022-04-08 00:00:00
end: 2022-05-07 23:59:00
period: 10m
basePeriod: 1m
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/
// © Professeur_X

//@version=5

indicator(title='HA Market Bias', shorttitle='HA Market Bias', overlay=true)

tf(_res, _exp, gaps_on) =>
    gaps_on == 0 ? request.security(syminfo.tickerid, _res, _exp) : gaps_on == true ? request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_on, barmerge.lookahead_off) : request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_off, barmerge.lookahead_off)

ha_htf = ''
show_ha = input.bool(true, "Show HA Plot/ Market Bias", group="HA Market Bias")
ha_len = input(100, 'Period', group="HA Market Bias")
ha_len2 = input(100, 'Smoothing', group="HA Market Bias")

// Calculations {
o = ta.ema(open, ha_len)
c = ta.ema(close, ha_len)
h = ta.ema(high, ha_len)
l = ta.ema(low, ha_len)

haclose = tf(ha_htf, (o + h + l + c) / 4, 0)
xhaopen = tf(ha_htf, (o + c) / 2, 0)
haopen = na(xhaopen[1]) ? (o + c) / 2 : (xhaopen[1] + haclose[1]) / 2
hahigh = math.max(h, math.max(haopen, haclose))
halow = math.min(l, math.min(haopen, haclose))


o2 = tf(ha_htf, ta.ema(haopen, ha_len2), 0)
c2 = tf(ha_htf, ta.ema(haclose, ha_len2), 0)
h2 = tf(ha_htf, ta.ema(hahigh, ha_len2), 0)
l2 = tf(ha_htf, ta.ema(halow, ha_len2), 0)

ha_avg = (h2 + l2) / 2
// }
    
// Oscillator {
osc_len = input.int(7, "Oscillator Period", group="HA Market Bias")

osc_bias = 100 *(c2 - o2)
osc_smooth = ta.ema(osc_bias, osc_len)

sigcolor = 
  (osc_bias > 0) and (osc_bias >= osc_smooth) ? color.new(color.lime, 35) : 
  (osc_bias > 0) and (osc_bias < osc_smooth) ? color.new(color.lime, 75) : 
  (osc_bias < 0) and (osc_bias <= osc_smooth) ? color.new(color.red, 35) : 
  (osc_bias < 0) and (osc_bias > osc_smooth) ? color.new(color.red, 75) :
  na
// }

// Plots {
p_h = plot(h2, "Bias High", display=display.none, editable=false)
p_l = plot(l2, "Bias Low", display=display.none, editable=false)
p_avg = plot(ha_avg, "Bias Avergae", display=display.none, editable=false)



col = o2 > c2 ? color.red : color.lime

if o2 > c2
    strategy.entry("Enter Long", strategy.long)
else if o2 < c2
    strategy.entry("Enter Short", strategy.short)


Связанные

Больше