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

 
GSB:

No, no lo hace, si pones primero int deslizamiento asignará 4 bytes, por lo que debes sumar 8 (int reserva) o usar long en lugar de int


Hay otro momento extraño aquí. Si se trata de un elemento de una estructura de cadena, si el número de caracteres variables de este tipo de cadena es superior a 7, ¿lo colocaremos por encima de los demás? Porque las cadenas siempre tienen un carácter nulo \n al final de la cadena, y si hay más de 7 elementos en la cadena, por ejemplo, 8 elementos, entonces la cadena tendrá 8 + 1 bytes, porque 8 + \n. ¿Verdad?
 
GSB:

129 error se produce cuando el precio tiene tiempo de cambiar antes de que el CC ejecute su orden, utilice un deslizamiento mayor.


El deslizamiento es de 50 pips antiguos, el precio después del punto decimal tiene 5 o 4 dígitos, a veces es de 12 o 16. Lo pruebo en la demo.
 
Example2:


No, no en el probador, sólo en una cuenta demo.

Ya me di cuenta de tu post y borré el mío - lo escribí desde la última página. Sin el código es difícil decirte algo concreto.
 
artmedia70:
Ya me di cuenta de tu post y borré el mío - lo escribí desde la última página. Sin el código es difícil decirte algo concreto.


¿Te lo envío en el foro o por privado?
 
Example2:

¿Quieres que lo publique en el foro o en persona?
Por favor, déjalo en el foro si no te importa. Alguien lo corregirá. Ya me estoy metiendo en la cama, son las 5:30 de la mañana, el caballo sigue levantado...
 
Yo también me voy a la cama.
Archivos adjuntos:
 
     USDCADAsk = MarketInfo("USDCAD",MODE_ASK);            
     USDCADBid = MarketInfo("USDCAD",MODE_BID);

     Comment("USDCADAsk = "+DoubleToStr(USDCADAsk,нужный диджитлс),"\n",
             "USDCADBid = "+DoubleToStr(USDCADBid,нужный диджитлс));
 
hoz:

Hay otro momento extraño aquí. Si hay un elemento de la estructura de tipo cadena, si el número de caracteres variables de este elemento es superior a 7, ¿lo colocamos por encima del resto? Después de todo, las cadenas siempre tienen un carácter nulo \n al final de la cadena y si hay más de 7 elementos en la cadena, por ejemplo, 8 elementos, la cadena tendrá 8 + 1 bytes porque 8 + \n. ¿Verdad?

Si la estructura contiene variables de tipo cadena y/o objeto de matriz dinámica, el compilador asigna un constructor implícito a dicha estructura, donde todos los miembros de la estructura de tipo cadenase ponen a cero y se realiza una correcta inicialización para el objeto de matriz dinámica.

 
Example2:

Yo también estoy durmiendo.

Archivos adjuntos:
Kuklovod_USD_1.1.mq4


No se pueden escribir códigos tan desatentos :)

Primero, Comment("USDCADAsk = ",USDCADAsk); luego USDCADAsk = DoubleToString(MarketInfo("USDCAD",MODE_ASK),usdcaddigits); USDCADAsk se declara como un double, pero se le pone un String,

y luego Digits.... de nuevo ^) y Punto

Tienes que buscar esos errores por ti mismo, ¡nadie te los va a arreglar, así como el comercio! El compilador genera 28 errores y tú pones la demo a operar. Puede que desees utilizar dinero real, pero el mercado te habrá corregido.

 if (USDCHF){while(IsTradeContextBusy()){Sleep(10);}
                    RefreshRates();
                    Result[1] = OrderSend("USDCHF",OP_BUY,Lot,USDCHFAsk,slip,USDCHFAsk-NormalizeDouble(sl*Point,Digits),USDCHFAsk+NormalizeDouble(tp*Point,Digits),"USDCHF",magic[0],0,Red);
                    if (Result[1] < 0){Alert("Функция OpenOrders ","\n","Валютная пара "+"USDCHF","\n",
                    "Команда: открыть ордер Sell","\n", "Ответ сервера: " ,errors(GetLastError()) );}}
        if (USDJPY){while(IsTradeContextBusy()){Sleep(10);}
                    RefreshRates();
                    Result[2] = OrderSend("USDJPY",OP_BUY,Lot,USDJPYAsk,slip,USDJPYAsk-NormalizeDouble(sl*Point,Digits),USDJPYAsk+NormalizeDouble(tp*Point,Digits),"USDJPY",magic[0],0,Red);
                    if (Result[2] < 0){Alert("Функция OpenOrders ","\n","Валютная пара "+"USDJPY","\n", 
                    "Команда: открыть ордер Sell","\n", "Ответ сервера: " ,errors(GetLastError()) );}}

¿De quién es el Bid Ask?

//-----------

void CloseOrders(){
      for (int i = OrdersTotal()-1; i>=0; i--){
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
             if (OrderMagicNumber() == magic[0]){
               if (USDBuySl || USDBuyTp){
                 while(IsTradeContextBusy()){Sleep(10);}
                 RefreshRates();
                 OrderClose(OrderTicket(),OrderLots(),Bid,slip,Blue);
               }
             }
   .................
        OrderClose(OrderTicket(),OrderLots(),Ask,slip,Blue);


Correcto

RefreshRates();
double bid=MarketInfo(OrderSymbol(),MODE_BID);
double ask=MarketInfo(OrderSymbol(),MODE_ASK);
OrderClose(OrderTicket(),OrderLots(),bid,slip,Blue);
.............
OrderClose(OrderTicket(),OrderLots(),ask,slip,Blue);
 
Ayúdame a encontrar el valor máximo del indicador N para el día anterior, obtengo los datos a través de iCustom y luego un bloqueo. Creo que se hace a través de ArrayMaximum, pero cómo encontrar el valor

No sé qué debería hacer iCustom, no se me ocurren más opciones.

Razón de la queja: