#pinescript-v5
#pinescript-v5
Вопрос:
пожалуйста, помогите мне с этим кодом. Я хочу добиться следующего в этом предварительном условии кода
- Быстрый МА кроссовер Медленный МА
- проверьте наклон SMA (как показано на рисунке). Если наклон начинает падать, выполните следующие действия
Требования
- определите максимум разворота (верхнюю границу ценового канала)
- нижний предел-вычитание 5xATR из максимума разворота
- Пока цена остается в пределах этого предела, измените цвет фона
- когда цена выйдет за эти пределы, не показывайте ни одного
- Если цена вернется в этот канал, не меняйте цвет фона.
- делайте это только один раз за пересечение.
Код вместе с помеченной диаграммой приведен ниже. Любые предложения или помощь будут оценены по достоинству
*******************************CODE******************************* [enter image description here][2] //@version=5 indicator(title ="Sideways Market after rally", overlay = true) // taking user inputs slowSMAlength = input.int(title="Slow SMA Period", defval=200) fastSMAlength = input.int(title="Fast SMA Period", defval=21) ROC_lookback = input.int(title="ROC Lookback Period", defval=15) //calculating EMAs fastSMA = ta.sma(close, fastSMAlength) slowSMA = ta.sma(close, slowSMAlength) //***********************************************************************************************// //finding the slope and than smoothing it slope_sma = (ta.roc(slowSMA, ROC_lookback))*63.2 //slope of slow moving average smoothed_slope = ta.sma (slope_sma, 15) // smoothing by taking Smoothed moving average of the slope isRising = ta.rising(smoothed_slope, 10) //**********************************************************************************************// // initial conditons for long and short entry longcondition = fastSMA gt;= slowSMA // uptrend //Entry Conditions longentry = ta.crossover(fastSMA, slowSMA) and longcondition // when fast MA cross above the slow MA and fast MA greater than slow MA // finding ATR atr = ta.atr(14) //variables for finding the sideways markets float phigh = 0.0 float phigh_1 = 0.0 var bool sideways = false // variables to verify that code only execute once when the condition is true //*******************execute this piece of code only once when these condition happens*********************************************** if (long entry and long condition and isRising==0 and sideways==false) // after fast SMA crossover slow SMA and fastSMA is greater than slow SMA and slope starts falling sideways:= true //sideways variable becomes true so that this if statement is not executed next time before condition changes phigh := ta.pivothigh (high, 15, 5) // find the pivot high point and it will be the upper limit of the sideways channel phigh_1 := phigh - 4*atr // find the lower limit of the channel by subtracting 4 ATRs from the pivot high //*********************************************************************************************************************************** if (close gt; phigh or close lt; phigh_1 and sideways == true ) // if the price goes above the defined price limits (price channel) and above code is executed sideways := false // change the state of the variable //plot the variables bgcolor(close lt; phigh or close gt; phigh_1 ? color.new(color.red,90) : na) // color the background as long as the price remians in the limit "phigh" and "phigh_1" plot(series=slowSMA, title="Slow EMA", color=color.blue, linewidth=2) // plot moving averages plot(series=fastSMA, title="Fast SMA", color=color.yellow, linewidth=1) // plot moving averages ***************************************CODE END*************************************************