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

 
dzhini:

Parece que algo no funciona. POR FAVOR, AYUDA.

La idea de la prueba es la siguiente: si la vela es mayor que un determinado valor, entonces prohíbe seguir negociando.


No puedo entender lo que está tratando de lograr. Después de tu último post, que has borrado, he hecho un script que muestra todos los datos sobre el tamaño de la vela y los parámetros a comprobar. Todo funciona.

Sólo me pareció una lógica extraña: si la vela es alcista, se prohíbe comprar, y si es bajista, se prohíbe vender... Pero depende de tu propia lógica...

//+------------------------------------------------------------------+
//|                                        Проверка высоты свечи.mq4 |
//|                             Copyright © 2010, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Trishkin Artyom A."
#property link      "support@goldsuccess.ru"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
bool BuyOne =false;
bool SellOne=false;
int  CandleVolume=10;

int start()
  {
//----
   Alert ("Проверка дала результат = ",CheckVolume());
//----
   return(0);
  }
//+------------------------------------------------------------------+
int CheckVolume()                               // функция проверки высоты свечи
{
   double volume=High[1]-Low[1];                // проверка высоты свечи
   double signCandle=Open[1]-Close[1];          // проверка направления (положительное или отрицательное значение)
   double CVol=CandleVolume*Point;
   int    Res=0;

   BuyOne =true;
   SellOne=true;
   if (NormalizeDouble(CVol-volume,Digits)>=0) Res=1; // если свеча меньше, то всё ОК
   else {                                       // если свеча больше, то прверяем её направление
      if (signCandle<0) BuyOne =false;          // если значение меньше ноля (т.е. закрытие больше открытия), то блокируем покупки
      if (signCandle>0) SellOne=false;          // в противном случае блокируем продажи
      Res=-1;                                   // возвращаем отказ по сделке
      }
   Comment ("\n",
            "High[1] = ",High[1],"\n",
            "Low[1] = ",Low[1],"\n",
            "Высота свечи (High[1]-Low[1]) = ",volume,"\n",
            "Проверяемый размер свечи = ",CVol,"\n",
            "Open[1] = ",Open[1],"\n",
            "Close[1] = ",Close[1],"\n",
            "Open[1]-Close[1] = ",Open[1]-Close[1],"\n",
            "Направление свечи = ",signCandle,"\n",
            "BuyOne = ",BuyOne,"\n",
            "SellOne = ",SellOne,"\n"
            
            );
   return(Res);
}
 

Cómo implementar un código de este tipo:

Comprobamos la barra cero (que aún no está completamente formada) hasta que sea la primera (ya completamente formada). Si la barra cero es ahora la primera (en lugar de 0 tiene un 1) - entonces continuamos...

¡¡¡Pro, ayúdame a que esto sea parte del código!!!

 
Ayudar a encontrar un asesor que tome la información del historial ....
 
kolyango:

Cómo implementar un código de este tipo:

Comprobamos la barra cero (que aún no está completamente formada) hasta que sea la primera (ya completamente formada). Si la barra de cero es ahora la primera (en lugar de 0 tiene un 1) - entonces continúa...

¡¡¡Pro, ayúdame a que esto sea parte del código!!!

Comprueba el primero de inmediato. ¿Por qué comprobar el cero mientras se espera que sea el primero?
 
itum:
Ayudar a encontrar un asesor que tome la información del historial ....
¿Qué tipo de información? ¿Sobre la ubicación de las estrellas?
 
artmedia70:
¿Qué tipo de información? ¿Sobre la ubicación de las estrellas?
¡Se ha hablado en este foro más de una vez de algún asesor que entre en el historial y saque información (citas, etc.) Así que estoy buscando algo así !
 
itum:
¡Se ha hablado en este foro más de una vez de un Expert Advisor que entre en el historial y tome información (cotizaciones, etc.) Así que estoy buscando algo así !
¿Tal vez sea mejor decidir qué información quieres obtener del historial y escribir el código?
 
artmedia70:
¿No sería mejor decidir qué información quieres de la historia y escribir el código?
¿Por qué escribir código si ya tienes algo similar? A grandes rasgos, necesito un EA que muestre muy buenos resultados sólo en el probador ..... ¡¡!!
 
artmedia70:
Comprueba la primera directamente. ¿Por qué comprobar el cero esperando que sea el primero?

Esto asegurará que no todos los ticks ejecuten todo el código adicional, sino sólo cuando la barra cero sea la primera...
 
kolyango:

Esto asegurará que no todos los ticks ejecuten todo el código adicional, sino sólo cuando la barra cero sea la primera...
bool Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   bool New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }