El botón de compra es azul. Por lo tanto, los precios a los que se puede pujar también deben ser azules. Ahora es al revés y hay que trabajar mucho para acostumbrarse y es poco probable que funcione. Es un matiz psicológico. )))
Basándose en la información relativa a la Pila de Precios en la Ayuda, el diseño de la prueba sería algo así:
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
MarketBookAdd(_Symbol);
//---return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
MarketBookRelease(_Symbol);
}
//+------------------------------------------------------------------+//| OnBook Event |//+------------------------------------------------------------------+MqlBookInfo priceArray[];
//---voidOnBookEvent(conststring &symbol_name)
{
bool getBook=MarketBookGet(_Symbol,priceArray);
//---if(!getBook)
{
Print("Не удалось получить содержимое стакана по символу ",Symbol());
}
}
//+------------------------------------------------------------------+//| OnChart event handler |//+------------------------------------------------------------------+voidOnChartEvent(constint id,constlong &lparam,constdouble &dparam,conststring &sparam)
{
double price_buy=0.0,price_sell=0.0;
//---
TRADE_EXEMODE=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_EXEMODE); // Узнаем тип исполнения//---if(TRADE_EXEMODE==SYMBOL_TRADE_EXECUTION_MARKET ||
TRADE_EXEMODE==SYMBOL_TRADE_EXECUTION_EXCHANGE)
{
mytrade.SetTypeFilling(ORDER_FILLING_IOC);
//---if(TRADE_EXEMODE==SYMBOL_TRADE_EXECUTION_EXCHANGE)
{
int size=ArraySize(priceArray);
//---for(int i=size-1; i>=0; i--)
{
if(priceArray[i].type==1)
{
price_buy=priceArray[i].price; // Получим ближайшую цену для BUY
price_sell=priceArray[i+1].price; // Получим ближайшую цену для SELL
//---break;
}
}
}
else
{
price_buy=mylast_tick.ask;
price_sell=mylast_tick.bid;
}
}
//---//... Далее следуют функции для совершения торговых операций
}
//---
Sin embargo, al realizar una operación, el registro del Asesor Experto muestra un mensaje, del que se desprende que aunque había un precio en la consulta, era el más cercano en la Profundidad de Mercado:
price_request=mytrade.RequestPrice();
el resultado es sin precio (0,000):
price_result=mytrade.ResultPrice();
y la función de comercio devuelve falso:
//---
En el registro podemos ver que hubo un intento de abrir una posición a precio cero:
pero la posición se abrió, no obstante, al precio actual.
//---
Si esta información no es suficiente para determinar qué parte es la culpable, escribiré al Servicio de Atención al Cliente.
Pon un ejemplo completo, por favor. Gracias de antemano.
Hay un ejemplo completo en la biblioteca estándar. Función OrderDelete(). Tiene documentación. También puede tomar allí funciones para todas las operaciones comerciales.
El terminal no se registra en la comunidad mql5. Introduzco el nombre de usuario y la contraseña en la configuración del terminal, pulso ok y no pasa nada. Cuando vuelvo a entrar en la configuración, el inicio de sesión se guarda, pero la contraseña está en blanco. No puedo descargar nada del mercado. Puedo entrar en el foro sin problemas.
Por favor, dígame, ¿cuándo puede haber una situación en la que una orden de mercado fue colocada en el servidor pero no fue ejecutada (incluso parcialmente)?
Si te centras en los colores del tumblr de Price, parece que hay confusión.
//---
El botón de compra es azul. Por lo tanto, los precios a los que se puede pujar también deben ser azules. Ahora es al revés y hay que trabajar mucho para acostumbrarse y es poco probable que funcione. Es un matiz psicológico. )))
Basándose en la información relativa a la Pila de Precios en la Ayuda, el diseño de la prueba sería algo así:
//---
Sin embargo, al realizar una operación, el registro del Asesor Experto muestra un mensaje, del que se desprende que aunque había un precio en la consulta, era el más cercano en la Profundidad de Mercado:
el resultado es sin precio (0,000):
y la función de comercio devuelve falso:
//---
En el registro podemos ver que hubo un intento de abrir una posición a precio cero:
pero la posición se abrió, no obstante, al precio actual.
//---
Si esta información no es suficiente para determinar qué parte es la culpable, escribiré al Servicio de Atención al Cliente.
¿Pueden decirme cómo eliminar una orden pendiente?
trReq.order=orden_ticket;
trReq.type=TRADE_ACTION_REMOVE;
OrderSend(trReq,trRez);
Mi compilador me da: TRADE_ACTION_REMOVE no puede convertir el enum
y 2 veces sobre el mismo error.
ya lo intenté de la misma manera con la puesta a cero:
trReq.symbol =Symbol(); //NULL
trReq.magic =MAGIC; //0
trReq.volume =0.0;
trReq.type =0;
trReq.price =0.0;
trReq.sl =0.0;
trReq.tp =0.0;
trReq.type_time =0;
trReq.expiration=0;
no funciona. compilación 597.
Dame un ejemplo completo, por favor. Gracias de antemano.
...
Pon un ejemplo completo, por favor. Gracias de antemano.
Hay un ejemplo completo en la biblioteca estándar. Función OrderDelete(). Tiene documentación. También puede tomar allí funciones para todas las operaciones comerciales.
¿Cuál es el propósito de truncar una cadena cuando se establece como un parámetro externo?
cadena de entrada - se puede especificar un máximo de 105 caracteres, si es más, se recorta a la derecha.
construir 597
por favor, dígame por qué el siguiente código no encuentra la ventana correspondiente (lo he comprobado, la ventana con esta clase existe)
Parece que hay algún tipo de error en
Con el código de retorno 10008 (pedido realizado), este método devuelve false.
La orden se ejecuta finalmente.
Por ello, se abrieron más órdenes de las requeridas en la cuenta demo.
Y el registro del Asesor Experto
Por favor, dígame, ¿cuándo puede haber una situación en la que una orden de mercado fue colocada en el servidor pero no fue ejecutada (incluso parcialmente)?Parece que hay un error en
Con el código de retorno 10008 (pedido realizado), este método devuelve false.
La orden acaba siendo ejecutada.
Por ello, se abrieron más órdenes de las requeridas en la cuenta demo.
Y el registro de expertos
Dígame cuándo puede darse una situación en la que una orden de mercado se coloque en el servidor pero no se ejecute (ni siquiera parcialmente).El mismo problema se describe al principio de la página. Se describe aquí: https://www.mql5.com/ru/forum/1111/page679#comment_164002. Todavía no se ha dado ninguna respuesta.
//---
¿Dónde tiene abierta su cuenta de demostración?
El mismo problema se describe al principio de la página. Aquí está: https://www.mql5.com/ru/forum/1111/page679#comment_164002. Todavía no se ha dado ninguna respuesta.
//---
¿Dónde tiene abierta su cuenta de demostración?
1. Tarde para ver este hilo.
2. En A*****i.
Y esto lo publiqué en humor en el foro 4, pero creo que debería estar aquí también :
Estoy analizando los vuelos del Asesor Experto (MT5) y encontré esto en los registros
... Donde ... en el DC ???