Errores, fallos, preguntas - página 771

 
maryan.dirtyn:

Eso es lo que estoy haciendo))... 6ª hora... y no puedo averiguar dónde está el error

la reticencia a utilizar las bibliotecas estándar se debe a que las banderas y las variables globales se utilizan dentro de las funciones, y no parece razonable desmontar trade.mqh y otras partes

¿Y qué error se devuelve? )))
 
maryan.dirtyn:

MetaQuotes-Demo

Nombre de usuario: 1219233

EURUSD

Acabo de probarlo en la libra, la misma historia. no hay paradas. hago todo en el probador

Construir 655 (si ayuda)

Escribe una inicialización explícita de las estructuras:

   MqlTradeRequest request={0};
   MqlTradeResult  result={0};

Sin ella, los campos de la estructura se quedan con basura y no se llenan todos los campos.

 

Gracias...

esa es la forma en la que me suelto:

void OnTick(){ if(PositionsTotal()<1)OPEN(); }

bool OPEN(){
             MqlTradeRequest request={0};  ZeroMemory(request);
             MqlTradeResult  result={0};   ZeroMemory(result);
             

             request.symbol       = _Symbol;
             request.action       = TRADE_ACTION_DEAL;
             request.type_filling = ORDER_FILLING_FOK;
             request.deviation    = 100;
             request.volume       = NormalizeDouble(2,2);
             request.type         = ORDER_TYPE_BUY;
             request.price        = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
             request.tp           = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK) + 500*_Point,_Digits);
             request.sl           = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK) - 500*_Point,_Digits);

             OrderSend(request,result);     
                        
             if(result.retcode==10009 || result.retcode==10008)  Print("Succsesful open");
             else                                               Print("Error open: ",DoubleToString(GetLastError(),0),"  response code: ",result.retcode);
    
   return(true);}
 
ZeroMemory() ya es superfluo, ya que antes existe una puesta a cero más económica y sencilla sobre ={0};
 

¿cómo puedo comprobarlo de otra manera? este diseño se niega a funcionar correctamente

if(PositionGetDouble(POSITION_PRICE_OPEN)!=PositionGetDouble(POSITION_SL)){ ... }
 

¿Cuándo habrá parámetros en OnTrade? Tenemos que hacer tanto lío...

Por lo menos, saber qué parámetros habrá. De lo contrario, tendré que rehacer muchos de ellos para el momento del Campeonato.

 
pronych:

¿Cuándo habrá parámetros en OnTrade? Tenemos que hacer tanto lío...

Por lo menos, saber qué parámetros habrá. De lo contrario, tendré que rehacer muchos de ellos para el momento del Campeonato((.

Estará en la construcción de hoy mañana. Se ha añadido otro punto de entrada:

void OnTradeTransaction(const MqlTradeTransaction& trans,const MqlTradeRequest& request,const MqlTradeResult& result)
  {
      
  }
 

Está claro lo que debe ser: instrumento, precio, lote, tipo de operación, etc.

Pero no está claro cómo averiguar el precio del comercio.

Tal vez me perdí algo, estuve fuera por un tiempo...

 
Renat:

Estará ya en la compilación de hoy. Se ha añadido otro punto de entrada:

Muchas gracias. Finalmente)))

Realmente lo espero con ansias.

 

Queridos desarrolladores Dado que el terminal no tiene un historial de Ask, ¿tendría sentido vincular las órdenes stop (Buy stop, Sell stop) al precio Bid? O hacer que un usuario seleccione a qué precio debe activarse una orden (Bid o Ask). Me refiero a las divisas.