[¡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 387

 
splxgf >>:

Michey25


когда я отвечал код был несколько другим;)

хотя есть некоторые вопросы, результат опен(0) сильно зависит от текущего тайфрейма. непонятно откуда берутся cn и какого они типа.

Сделать Alert(Open[0],cn1,Open[0]<cn1,a,(a-cn1)<0.0008) религия не позволяет?

До кучи вместо i=1 лучше юзать break, это сделает выход из цикла сразу, а не будет прогонять все команды до конца.

int i=0;
   double a, b;
   while ( i==0)
   {
     a=MarketInfo("USDCAD", MODE_ASK);
     b=MarketInfo("USDCAD", MODE_BID); 
     if((Open[0]< cn1)&&(( a- cn1)<0.0008))
      {
       OrderSend("USDCAD",OP_BUY,1, a,1, SL, cn2);
       i=1;
       }
     if((Open[0]> cn11)&&(( cn11- b)<0.0008))
      {
       OrderSend("USDCAD",OP_SELL,1, b,1, SL1, cn21);
       i=1;
      }  
   }

cn, sl, cn2... Todos ellos son dobles y son parámetros de entrada, y los introduzco cuando adjunto el EA al gráfico. ¿Qué tiene que ver la alerta con esto?

 
Rita >>:

В чем тут может быть причина, пож. подскажите ?

for(k = 0; k < iBars( Symbol_1,Period()); k++)

Ejecuta un bucle en todas las barras y luego tiene otro bucle incrustado en el que en la primera llamada se consideran todas las barras porque el valor límite vuelve a ser igual al número de barras de la ventana. En total obtenemos el ciclo por el número de barras al cuadrado, lo cual es un poco redundante para una tarea tan sencilla
 
Michey25 >>:

cn, sl, cn2... все типа double и являются входными параметрами, я их ввожу когда прикрепляю советник к графику. И причем здесь Alert?


Puede mostrar los valores de las variables y los resultados de una condición con una alerta, añadir un if antes de cada uno y ver el resultado. Este es un método común para depurar programas, de modo que no tenga que adivinar y buscar.

 

Gracias. Entonces, al principio de la función start() tengo que hacer algún gestor de condiciones, que defina la llamada de funciones que devuelvan el control al terminal y luego, cuando se reciba un nuevo tick, este gestor volverá a funcionar? Bueno... Tendré que rehacer completamente la lógica del programa...


Entonces, ¿la prueba falla porque el probador se queda colgado esperando un nuevo tick? ¿Funcionará en tiempo real? Um... Es importante poder probarlo en la historia. Lo pensaré. Gracias.

 
Jahspear >>:

Спасибо. То есть надо сделать в начале функции start() некий диспетчер условий, которые определяют вызов соответствующих ситуации функций, каждая из которые возвращают управление терминалу и дальше по получению нового тика этот диспетчер снова отрабатывает? Мдаа... придется полностью переделывать логику программы...


То есть тест не проходит, потому что тестер зависает в ожидании нового тика? А в реалтайме работать будет? Гм... все-таки возможностьоттестировать на истории это важно. Буду думать. Спасибо.

Debería funcionar en tiempo real, el Asesor Experto se ejecuta en un hilo separado y puede pensar todo lo que quiera, y RefreshRates permite el acceso a las cotizaciones actuales.

 
ntmmm >>:

Добрый день!

Подскажите пожалуйчта, как написать простой индикатор, который бы выделял определенный бар (должно задаваться в опциях), например в 12.30 вертикальной линией и подписать дни недели на графике (скажем где-то над хаем каждого дня)?

Спасибо!

tomar https://www.mql5.com/ru/articles/1382 y archivarlo

 
splxgf >>:

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

Gracias. Actualmente estoy rehaciendo la lógica del programa para que no tenga bucles. Hay una cuestión más que no está del todo clara.

Sleep(100);


¿Cuánto tiempo en segundos?

¿Y puede utilizarse en cualquier lugar, no sólo en los bucles?

De modo que cuando se cumple una condición, no se reacciona inmediatamente, sino que se espera un tiempo determinado y se vuelve a comprobar, y luego se ejecuta.

¿Y no colgará al probador?

 

ntmmm писал(а) >>

...¿Podríais decirme cómo escribir un indicador sencillo que resalte una barra determinada (debería fijarse en las opciones), por ejemplo a las 12.30 con una línea vertical y que señale los días de la semana en el gráfico (digamos en algún lugar encima de la hai de cada día)?

Conjunto de indicadores iTime

 
Jahspear >>:

Это сколько по времени в секундах?

И может ли использоваться не только в циклах, а в любом месте?

Чтобы при выполнении условия не сразу реагировать, а подождать заданное время и снова проверить, а потом уже выполнять.

И не повесит ли это тестер?

1. 0,1 (cero coma una décima)

2. podría estar en cualquier lugar

3. no se cuelga solo, pero si te lo propones... :)

 
alsu >>:

Gracias.

Razón de la queja: