Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 76

 
lottamer:


DC es de cinco dígitos...

¿Qué significa SIN DoubleToStr(SuPrecio,5)? Tengo DoubleToStr(SuPrecio,5) en ninguna parte

Si sólo pone una variable doble en algún lugar de Print o Alert (Print(doubleVariable)), sólo se imprimirán cuatro decimales; si pone Print(DoubleToStr(doubleVariable,N)) - el programa imprimirá N decimales.
 
Pregunta a los moderadores: muy a menudo el sitio me envía de vuelta para la reautorización. Cuando intento conectarme, aparece el mensaje "Su acceso está temporalmente restringido o denegado". Luego, al cabo de unas horas, se restablece el acceso. ¿Cuál puede ser el problema?
 
Gracias a todos por los consejos, pero lógicamente, no hay diferencia entre las dos opciones...
  • for (int i=1; i<=TotalPedidos(); i++)
  • for (int i=TotalPedidos()-1; i>=0; i--)
¿O me equivoco? Por cierto, esto no ayudó....


Lo extraño es que EA borra completamente todas las órdenes bajo esta condición:
  • for (int i=0; i<=TotalPedidos(); i++)
  • para (int i=Total de pedidos(); i>=0; i--)
¿Alguien puede entender por qué?

 
yosuf:
Pregunta a los moderadores: muy a menudo el sitio me envía de vuelta para la reautorización. Cuando intento conectarme, aparece el mensaje "Su acceso está temporalmente restringido o denegado". Luego, al cabo de unas horas, se restablece el acceso. ¿Cuál puede ser el problema?
Universo homeostático. Los moderadores no pueden afectar a la autorización. Sólo está prohibido permanentemente.
 
granit77:
Universo homeostático. Los moderadores no pueden afectar a la autorización. Sólo está prohibido permanentemente.
¿Qué hacer ahora? ¿A quién recurrir?
 
yosuf:
¿Qué hacer ahora? ¿A quién recurrir?

Al moderador del universo.
 
yosuf:
Pregunta a los moderadores: muy a menudo el sitio me envía de vuelta para la reautorización. Cuando intento conectarme, aparece el mensaje "Su acceso está temporalmente restringido o denegado". Luego, al cabo de unas horas, se restablece el acceso. ¿Cuál puede ser el problema?

Te están trolleando))) Eres un individuo carismático))))
 

Saludos.

¿Puedes decirme cómo tener en cuenta un cruce de precios con una línea indicadora?

el indicador tiene tres líneas: inferior, media y superior.

aquí hay un ejemplo:

cuando el precio cruzó la línea superior, necesito fijar este momento y usarlo después, cuando el precio está por debajo de la línea superior y por encima de la línea media, y cuando el precio está por debajo de la línea media, necesito restablecer el resultado fijado. No necesito recordar el precio en el que se produjo el cruce, sólo tengo que poner una marca para indicar que se produjo el cruce y luego borrarla.

LineUp //верхняя линия

LineS // средняя линия

LineDown // нижняя линия

Ask >  LineUp // фиксируем

Ask < LineS // сбрасываем

и так же с нижней линией

Bid < LineDown // фиксируем

Bid > LineS //  сбрасываем

Lo he probado con True y false, no ha funcionado, no entiendo por qué.

He probado esto:

double LineUp; //верхняя линия индикатора

double LineS; // средняя линия индикатора

double LineDown; // нижняя линия индикатора

bool FiksiruemUp = False;

 bool FiksiruemDown = False;

if ( Ask >  LineUp)  FiksiruemUp = True; // фиксируем

if (Ask < LineS) FiksiruemUp = False; // сбрасываем

// и так же с нижней линией

if (Bid < LineDown)  FiksiruemDown = True; // фиксируем

if (Bid > LineS)  FiksiruemDown = False; //  сбрасываем

 

// дальше в коде я к нему обращаюсь:

if ( FiksiruemUp == True) 

{

то нужно сделать это . . . . . . 

} 

y no funciona. ¿Por qué no? Ayúdame a entender.

 
Estimados usuarios del foro, por favor ayuden, no encuentro un error en el código de mi EA, a saber, no puede o no quiere cerrar posiciones por indicador, solo por tp o sl, aquí, según me parece, parte del código, que está asociado a este problema, muchas gracias de antemano
int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   FT1,                              // Значение 0 буффера Forex Trend
   FT2,                             // Значение 1 буффера Forex Trend
   TL1,                              // Значение 1 буффера Trend Lord
   TL2,                              // Значение 0 буффера Trend Lord                          
   FI,                               // Значен. Force Index текущее 
   Lot,                             // Колич. лотов в выбран.ордере
   Lts,                             // Колич. лотов в открыв.ордере
   Min_Lot,                         // Минимальное количество лотов
   Step,                            // Шаг изменения размера лота
   Free,                            // Текущие свободные средства
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell
   Opn_B=false,                     // Критерий для открытия  Buy
   Opn_S=false;                     // Критерий для открытия  Sell
                                                        
   
//--------------------------------------------------------------- 3 --
   // Предварит.обработка
   if(Bars < Period_FI)                       // Недостаточно баров
     {
      Alert("Недостаточно баров в окне. Эксперт не работает.");
      return;                                   // Выход из start()
     }
   if(Work==false)                              // Критическая ошибка
     {
      Alert("Критическая ошибка. Эксперт не работает.");
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------- 4 --
   // Учёт ордеров
   Symb=Symbol();                               // Название фин.инстр.
   Total=0;                                     // Количество ордеров
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!=Symb)continue;      // Не наш фин. инструм
         if (OrderType()>1)                     // Попался отложенный
           {   
            Alert("Обнаружен отложенный ордер. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Total++;                               // Счётчик рыночн. орд
         if (Total>1)                           // Не более одного орд
           {
            Alert("Несколько рыночных ордеров. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Ticket=OrderTicket();                  // Номер выбранн. орд.
         Tip   =OrderType();                    // Тип выбранного орд.
         Price =OrderOpenPrice();               // Цена выбранн. орд.
         SL    =OrderStopLoss();                // SL выбранного орд.
         TP    =OrderTakeProfit();              // TP выбранного орд.
         Lot   =OrderLots();                    // Количество лотов
        }
     }
//--------------------------------------------------------------- 5 --
   // Торговые критерии
                          
   TL1=iCustom(NULL, 0, "TrendLord", 1, 1);                          // trend lord синий
   TL2=iCustom(NULL, 0, "TrendLord", 0, 1);                          // красный тренд лорд
   FI=iForce(NULL, 0, Period_FI,MODE_EMA,PRICE_CLOSE,0);            // FI
   FT1=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 0, 1);                        // forex trend blue
   FT2=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 1, 1);                        // forex trend red


   if (TL2 == EMPTY_VALUE && FT1 == 1 && FT2 == 0 && FI > 0)
   {
      Opn_B = true;
      
   
      
   }
   while (Opn_B == true)
   {
      if (FI <= 0)
      {
         Cls_B=true;
      }
  break;
   }      
      
   if (TL1 == EMPTY_VALUE && FT2 == 1 && FT1 == 0 && FI < 0)
   {
      Opn_S = true;
      
     
      
   }
   while (Opn_S == true)
   {
      if (FI >= 0)
      {
         Cls_S=true;
      }
   break;
   }    
//--------------------------------------------------------------- 6 --
   // Закрытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
      if (Tip==OP_BUY && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Bid,2);      // Закрытие Buy
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ",Ticket);
            break;                              // Выход из цикла закр
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }

      if (Tip==OP_SELL && Cls_S==true)                // Открыт ордер Sell..
        {                                       // и есть критерий закр
         Alert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Ask,2);      // Закрытие Sell
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Sell ",Ticket);
            break;                              // Выход из цикла закр
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
      break;                                    // Выход из while
 
belck:

Saludos.

¿Puedes decirme cómo tener en cuenta un cruce de precios con una línea indicadora?

el indicador tiene tres líneas: inferior, media y superior.

aquí hay un ejemplo:

cuando el precio cruza la línea superior, necesito fijar este momento y utilizarlo después, cuando el precio está por debajo de la línea superior y por encima de la línea media, y cuando el precio está por debajo de la línea media, necesito restablecer el resultado fijado. No necesito recordar el precio en el que se produjo el cruce, sólo tengo que poner una marca para indicar que se produjo el cruce y luego borrarla.

Lo he probado con True y false, no ha funcionado, no entiendo por qué.

He probado esto:

y no funciona. ¿Por qué no? Ayúdame a entender.


No funciona, porque hay que llevar las variables que se quieren consignar al nivel global, es decir, antes de la función Start... Por ejemplo, estos y otros.... "FiksiruemUp = True; // commit " y "iksiruemUp = False; // reset"
Si no cambias entre plazos, debería funcionar...
Razón de la queja: