[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 748

 
Roger:
Intenta reiniciar tu terminal.

:) Gracias. Reiniciar el terminal no ayudó, pero reiniciar mi propio cerebro sí. Utilizo diferentes bloques en mi EA - bloque de operaciones, bloque de criterios, bloque de variables, bloque de funciones adicionales, etc., que están conectados por un inclu... Así que, estaba cambiando el bloque de criterios comerciales "Criteria", y necesitaba "Criteria01". Ese es el truco... :)

ZZZ... Estaba empezando a creer en el "drubashki"... :) Debería haber dormido un poco...

 
itum:
¡¡¡POR FAVOR, AYÚDENME !!! ¡En el siguiente código compruebo si la orden fue rentable o no ! ¡¡¡Si no cuento la cantidad !!!
Si la primera operación no fue rentable, se inicia el bucle de recuento y se añade para siempre.

¡¡¡Pero hay una trampa !!! Si una operación es rentable, todas las demás órdenes perdedoras se cuentan normalmente ....

double orderProf; // Contador del número de operaciones perdedoras

double CalcularLotes(){
doble Res=0,01;
bool bProfit=true;
int PrevTime=-1;
doble tmpLots;
for (int i=0;i<OrdersHistoryTotal();i++){
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
si (OrderSymbol()!=Symbol()) continuar;
si (OrderCloseTime()<PrevTime) continuar;
PrevTime=OrderCloseTime();
if (OrderProfit()>0){bProfit=true; orderProf=0;} if (OrderProfit()<0){bProfit=false; orderProf++;}
tmpLots=Lotes de pedido();
}


return(Res);
}
Te he dado un enlace a Igor Kim... Allí encontrará un montón de cosas para sus necesidades...
 
artmedia70:
Te he dado un enlace a Igor Kim... Hay un montón de cosas allí para sus necesidades...

¡DAK! Es el mismo que el mío ....

El PROBLEMA es que la primera vez no cuenta normalmente, pero después cuenta normalmente.... )))

ayuda ...

 

El enigma es el siguiente.

El indicador que se encuentra al final del código crea un objeto que sirve de indicador para otro indicador.

Después de crear el objeto, necesito "dormir" el indicador durante 5 segundos, luego borrar el objeto y dormirlo durante 60 segundos, después de lo cual irá al último reintento y comenzará de nuevo desde el principio con un nuevo tick.

Tratando de hacer esto

      int pauseT=0, // 
          pause01=0, // время первой паузы
          pause02=0; // время второй паузы
         if (ObjectFind("signalG")==1) // проверка наличия
         pause01=TimeLocal()+5; // 
         {while (TimeLocal()<pause01) // цикл сравнения
         {pauseT=TimeLocal()+1;} // чем бы его занять?????
         ObjectDelete("signalG");}
         if (ObjectFind("signalG")==-1) // повтор всего для 2-ой паузы
         pause02=TimeLocal()+15;
         while (TimeLocal()<pause02)
         {pauseT=TimeLocal()+1;}

Se cuelga hasta que parece que se le acaba el tiempo.

¿Algún consejo sobre cómo hacerlo?

 
Abzasc:

El enigma es el siguiente.

El indicador que se encuentra al final del código crea un objeto que sirve de indicador para otro indicador.

Después de crear el objeto, necesito "dormir" el indicador durante 5 segundos, luego borrar el objeto y dormirlo durante 60 segundos, después de lo cual irá al último reintento y volverá a empezar desde el principio con un nuevo tick.

Tratando de hacer esto

Se cuelga hasta que parece que se le acaba el tiempo.

¿Algún consejo sobre cómo hacerlo?

Sledgehammer... :):) Lo siento, no pude resistirme... :)
 
artmedia70:
Sledgehammer... :):)
¿Como temporizador? Entrará en un sueño letárgico :)
 
Abzasc:
¿Como temporizador? Entrará en un sueño letárgico :)
Bueno... cuando necesite que le hagan cosquillas, se despertará... :)
Vale, eso es off-topic. Me gustaría poder ser más específico. Uno para despertarlo, otro para bajarlo, otro para clavarlo...
¿Y la alimentación? :)
 
artmedia70:
más detalles en
Haz que el indicadorhaga una pausa. Algo así como un sueño.
 
Abzasc:
Haga una pausa en el indicador. Algo así como el sueño.

¿Qué pasa con el sueño?

Y también - al comprobar la presencia de un objeto

         if (ObjectFind("signalG")==1) // проверка наличия
se compara con el número de subventana del indicador. ¿Y si son dos?
Es mejor comparar con una variable que esté asignada al número de subventana del indicador deseado.

Así es como busco:

 int WinID=WindowFind("A/D");               // Номер окна AD

Y entonces ya compruebo la presencia de la subventana:

// --------------- Начертим восходящую трендовую линию (DN - экстремумы) ---------------------            
             
               if (WinID>0)   // Если окно индикатора есть на чарте (оно может иметь любой номер, кроме 0)
                  {
                     if (ObjectFind("Trend_GLine_DN")<0)     // Если объект ещё не построен
                     ObjectCreate("Trend_GLine_DN",OBJ_TREND,WinID,LowestTDN,LowestPeakDN,HighestTDN,HighestPeakDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_COLOR,Lime);
                     ObjectSet("Trend_GLine_DN",OBJPROP_TIME1,LowestTDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_PRICE1,LowestPeakDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_TIME2,HighestTDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_PRICE2,HighestPeakDN);
                  }
 
artmedia70:

¿Qué le disgusta del sueño?

No funciona en los indicadores. La razón para hacerlo así, no la entiendo. Aparentemente, un indicador que funciona constantemente se supone que hipnotiza :)
artmedia70:

¿Y si tengo dos?

No lo hará. Sólo deshacerse de las ventanas innecesarias.

Aunque luego tendré que comprobarlo, pero espero que para el EA :) gracias, tomo nota.