Hola, estoy usando un indicador de flecha en el que las señales desaparecerán alguna vez cuando el precio se mueva en contra de ella, después de haber recargado el indicador. Ahora, antes de que pienses que esto es solo otro indicador de repintado, el precio también puede moverse completamente en contra de otras señales, pero aún así estarán allí después de que haya recargado el indicador. Lo que necesito es que las señales que desaparecen cuando se vuelve a cargar el indicador no aparezcan en absoluto. Creo que esto es posible por las razones expuestas anteriormente.

Agradezco cualquier ayuda que pueda obtener con esto. El código está adjunto.
Además, daré $ 35 en bitcoins si alguien puede resolver esto y hacerlo de la manera que yo quiero.
Si es necesario, puedo proporcionar imágenes para explicarlo más.

¡Gracias!

Código insertado/ --------------------------------------------- --------------------- /| V-TB.mq4 |/| Don Lawson (don_forex) |/ ----------------------------------------------- ------------------- #property copyright Codificado por Don Lawson (don_forex) #property link [email protected]/---- #property indior_chart_window #property indior_buffers 2 #property indior_color1 Red #property indior_width1 2 #property indior_color2 Green #property indior_width2 2/---- extern double WickRatio = 0.5; extern double WickPercent = 50; extern int JuicePeriod = 7; extern int JuiceLevelForAlert = 5;/---- extern bool Notify = falso; extern bool UseNew = true;/---- double VTop # 91; # 93 ;; double VBottom # 91; # 93 ;; doble DistanceFromCandle; int Level = 5;/ ----------------------------------------------- ------------------- /| Función de inicialización del indicador personalizado |/ ----------------------------------------------- ------------------- int init () {//---- indicadores SetIndexStyle (0, DRAW_ARROW, VACÍO); SetIndexArrow (0, 234); SetIndexBuffer (0, VTop); SetIndexStyle (1, DRAW_ARROW, VACÍO); SetIndexArrow (1, 233); SetIndexBuffer (1, VBottom);/---- return (0); }/ ---------------------------------------------- -------------------- /| Función de desinitialización del indicador personalizado |/ ----------------------------------------------- ------------------- int deinit () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| |/ ----------------------------------------------- ------------------- void SetVTop (índice int) {double Juice, JuiceLevel;/Comprobar si JuiceLevel = Level * Point; if (Period () == 5) JuiceLevel = JuiceLevel2;/---- Juice = iStdDev (NULL, 0, JuicePeriod, MODE_EMA, 0, PRICE_CLOSE, index) -JuiceLevel; if (Juice gt; JuiceLevelForAlert * Point) {VTop # 91; index # 93; = High # 91; index # 93; DistanceFromCandle; if (Notify) PlaySound (V-Top.wav); }}/ --------------------------------------------- --------------------- /| |/ ----------------------------------------------- ------------------- void SetVBottom (índice int) {double Juice, JuiceLevel;/Comprobar si JuiceLevel = Level * Point; if (Period () == 5) JuiceLevel = JuiceLevel2;/---- Juice = iStdDev (NULL, 0, JuicePeriod, MODE_EMA, 0, PRICE_CLOSE, index) -JuiceLevel; if (Juice gt; JuiceLevelForAlert * Point) {VBottom # 91; index # 93; = Low # 91; index # 93; - DistanceFromCandle; if (Notify) PlaySound (V-Bottom.wav); }}/ --------------------------------------------- --------------------- /| Función de iteración del indicador personalizado |/ ----------------------------------------------- ------------------- int start () {int límite, i, estado; doble WickPenetration; doble BullWickPenHi, BullWickPenLow; doble BearWickPenHi, BearWickPenLow; doble BullWickHi, BullWickLow, BullBody; doble BearWickHi, BearWickLow, BearBody; int counted_bars = IndiorCounted (); if (counted_bars lt; 0) return (-1); if (counted_bars gt; 0) counted_bars--; limit = Bars - counted_bars; if (counted_bars == 0) limit- = 1 1;/---- WickPenetration = WickPercent100.0; DistanceFromCandle = Point * 8; para (i = 1; ilt; = límite; i ) {bool CurrentBull = falso, CurrentBear = falso, Bull = falso, Bear = falso, HiWick = falso, LoWick = falso;/---- if (Open # 91; i-1 # 93; lt; Close # 91; i-1 # 93;) CurrentBull = true; más CurrentBear = verdadero; if (Open # 91; i # 93; lt; Close # 91; i # 93;) Bull = true; else Bear = verdadero;/---- BullWickHi = Alto # 91; i # 93; - Cierre # 91; i # 93 ;; BullWickLow = Abierto # 91; i # 93; - Baja # 91; i # 93 ;; BullBody = Cerrar # 91; i # 93; - Abra # 91; i # 93 ;; BearWickHi = Alto # 91; i # 93; - Abra # 91; i # 93 ;; BearWickLow = Cerrar # 91; i # 93; - Baja # 91; i # 93 ;; BearBody = abrir # 91; i # 93; - Cierre # 91; i # 93 ;;/Verificar si hay VTOP (Alto # 91; i # 93; gt; Alto # 91; i 1 # 93;) {si (Toro) {si ((BullWickHi gt; BullBody * WickRatio))/(BullWickHi gt ; BullWickLow) HiWick = verdadero; } if (Bear) {if ((BearWickHi gt; BearBody * WickRatio))/(BearWickHi gt; BearWickLow) HiWick = true; }}/Buscar VBottom if (Bajo # 91; i # 93; lt; Bajo # 91; i 1 # 93;) {if (Bull) {if ((BullWickLow gt; BullBody * WickRatio))/( BullWickLow gt; BullWickHi) LoWick = verdadero; } if (Bear) {if ((BearWickLow gt; BearBody * WickRatio))/(BearWickLow gt; BearWickHi) LoWick = true; }}/Configurar tabla de estado si (CurrentBear Bull) State = 1; if (CurrentBear Bear) State = 2; if (CurrentBull Bull) State = 3; if (CurrentBull Bear) Estado = 4;/Establecer flecha si (HiWick) {BullWickPenHi = Cerrar # 91; i # 93; BullWickHi * WickPenetration; BearWickPenHi = Abra # 91; i # 93; BearWickHi * WickPenetration; switch (Estado) {caso 1:/CurrentBear Bull if (UseNew) {if (Open # 91; i-1 # 93; lt; BullWickPenHi) SetVTop (i); } else {SetVTop (i); } descanso; caso 2:/CurrentBear Bear if (UseNew) {if (Open # 91; i-1 # 93; lt; BearWickPenHi) SetVTop (i); } else {SetVTop (i); } descanso; Caso 3:/CurrentBullBull si (UseNew) {if (Cerrar # 91; i-1 # 93; lt; BullWickPenHi) SetVTop (i); } else {SetVTop (i); } descanso; Caso 4:/CurrentBull Oso if (UseNew) {if (Cerrar # 91; i-1 # 93; lt; BearWickPenHi) SetVTop (i); } else {SetVTop (i); } descanso; }} if (LoWick) {BullWickPenLow = Abrir # 91; i # 93; - BullWickLow * WickPenetration; BearWickPenLow = Cerrar # 91; i # 93; - BearWickLow * WickPenetration;/---- switch (State) {case 1:/CurrentBear Bull if (UseNew) {if (Close # 91; i-1 # 93; gt; BullWickPenLow) SetVBottom (i); } else {SetVBottom (i); } descanso; caso 2:/CurrentBear Bear if (UseNew) {if (Close # 91; i-1 # 93; gt; BearWickPenLow) SetVBottom (i); } else {SetVBottom (i); } descanso; caso 3:/CurrentBull Bull if (UseNew) {if (Open # 91; i-1 # 93; gt; BullWickPenLow) SetVBottom (i); } else {SetVBottom (i); } descanso; caso 4:/CurrentBull Bear) if (UseNew) {if (Open # 91; i-1 # 93; gt; BearWickPenLow) SetVBottom (i); } else {SetVBottom (i); } descanso; }}} return (0); }/ ---------------------------------------------- --------------------