Me gustaría saber si hay alguna alternativa al script de bucle infinito en el 5, porque dicho script es muy caprichoso, me gustaría que siguiera funcionando al reabrir el terminal o al cambiar el marco temporal?
Olegts: Me gustaría saber si hay alguna alternativa al script de bucle infinito en el 5, porque dicho script es muy caprichoso, me gustaría que siguiera funcionando al reabrir el terminal o al cambiar el marco temporal?
Si está satisfecho con la frecuencia mínima de 1 segundo, entonces OnTimer, de lo contrario
Mientrasno haya una operación de microsegundos en OnTimer.
posible pérdida de datos debido a la conversión de tipo ChartObject.mqh 213 4 posible pérdida de datos debido a la conversión del tipo ChartObject.mqh 481 4 posible pérdida de datos debido a la conversión de tipo ChartObject.mqh 867 17 posible pérdida de datos debido a la conversión de tipos ChartObjectsTxtControls.mqh 519 4
Bild 375 - vornings apareció en las bibliotecas estándar. Puede que haya alguno más, aún no lo he comprobado.
nanaos: ¿Podría decirme cómo puedo saber si una operación se cerró con un stop loss?
En MT5 no es la operación la que se cierra en el stop loss, sino la posición, de momento sólo se puede saber por el comentario de la operación que cerró la posición en el stop loss. Aquí hay un ejemplo de código.
void Event()
{
if(!HistorySelectByPosition(ID))return;
double margin=0.0;
bool res;
int total=HistoryOrdersTotal();
ulong deal_ticket=HistoryDealGetTicket(total-1);
string coment=HistoryDealGetString(deal_ticket,DEAL_COMMENT);
long deal_type=HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
double volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
double MinLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double MaxLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
ulong stoplevel=SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
if(deal_type==ORDER_TYPE_BUY)
{
if(StringFind(coment,"sl")>=0)
{
request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
request.price=NormalizeDouble(Bid,_Digits);
request.type = ORDER_TYPE_SELL;
if(SL<=0 || TP<=0)return;
if(SL>=stoplevel) request.sl=NormalizeDouble(Ask+(SL*_Point),_Digits);
if(SL<stoplevel) request.sl=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
if(TP>=stoplevel) request.tp=NormalizeDouble(Bid -(TP*_Point),_Digits);
if(TP<stoplevel) request.tp=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
OrderCalcMargin(request.type,_Symbol,request.volume,Bid,margin);
if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
}
if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
}
if(deal_type==ORDER_TYPE_SELL)
{
if(StringFind(coment,"sl")>=0)
{
request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
request.price=NormalizeDouble(Ask,_Digits);
request.type = ORDER_TYPE_BUY;
if(SL<=0 || TP<=0)return;
if(SL>=stoplevel) request.sl=NormalizeDouble(Bid -(SL*_Point),_Digits);
if(SL<stoplevel) request.sl=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
if(TP>=stoplevel) request.tp=NormalizeDouble(Ask+(TP*_Point),_Digits);
if(TP<stoplevel) request.tp=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
OrderCalcMargin(request.type,_Symbol,request.volume,Ask,margin);
if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
}
if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
}
if(request.volume<MinLot)request.volume=MinLot;
if(request.volume>MaxLot)request.volume=MaxLot;
request.volume=NormalizeDouble(request.volume,DigitsVolume());
request.action = TRADE_ACTION_DEAL;
request.magic = Magic;
request.symbol = _Symbol;
request.deviation = Slip;
request.type_filling = ORDER_FILLING_AON;
request.comment = CommentOrder;
OrderSend(request,result);
switch(result.retcode)
{
case10008: {Print("Ордер размещен");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
case10009: {Print("Заявка выполнена");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
case10004: {Print("Реквота");}break;
case10006: {Print("Запрос отвергнут");}break;
case10007: {Print("Запрос отменен трейдером");res=false;}break;
case10010: {Print("Заявка выполнена частично");res=false;}break;
case10011: {Print("Ошибка обработки запроса");res=false;}break;
case10012: {Print("Запрос отменен по истечению времени");}break;
case10013: {Print("Неправильный запрос");res=false;}break;
case10014: {Print("Неправильный объем в запросе");res=false;}break;
case10015: {Print("Неправильная цена в запросе");res=false;}break;
case10016: {Print("Неправильные стопы в запросе");res=false;}break;
case10017: {Print("Торговля запрещена");res=false;}break;
case10018: {Print("Рынок закрыт");}break;
case10019: {Print("Нет достаточных денежных средств для выполнения запроса");res=false;}break;
case10020: {Print("Цены изменились");}break;
case10021: {Print("Отсутствуют котировки для обработки запроса");}break;
case10022: {Print("Неверная дата истечения ордера в запросе");res=false;}break;
case10023: {Print("Состояние ордера изменилось");}break;
case10024: {Print("Слишком частые запросы");res=false;}break;
case10025: {Print("В запросе нет изменений");res=false;}break;
case10026: {Print("Автотрейдинг запрещен сервером");res=false;}break;
case10027: {Print("Автотрейдинг запрещен клиентским терминалом");res=false;}break;
case10028: {Print("Запрос заблокирован для обработки");res=false;}break;
case10029: {Print("Ордер или позиция заморожены");res=false;}break;
case10030: {Print("Указан неподдерживаемый тип исполнения ордера по остатку");res=false;}break;
case10031: {Print("Нет соединения с торговым сервером");}break;
case10032: {Print("Операция разрешена только для реальных счетов");res=false;}break;
case10033: {Print("Достигнут лимит на количество отложенных ордеров");res=false;}break;
case10034: {Print("Достигнут лимит на объем ордеров и позиций для данного символа");res=false;}break;
default: Print("Ошибка № - ",result.retcode);
}
}
El EA se ha optimizado en el intervalo AB. Arriba hay una ejecución con estos parámetros en el intervalo AD. No entiendo qué pasa en el punto C.
No puedo entender que el Asesor Experto no esté optimizado prácticamente en el intervalo de CD. Tal vez haya un cambio en algunas normas comerciales después de 25.10.2010 (punto C) o algo más?
El EA se ha optimizado en el intervalo AB. Arriba hay una ejecución con estos parámetros en el intervalo AD. No entiendo qué pasa en el punto C.
Mientras que el Asesor Experto prácticamente no está optimizado en el intervalo de CD. Tal vez haya un cambio en algunas de las normas de comercio después de 25.10.2010 (punto C) o algo más?
¿Cuál es el tamaño medio de las operaciones de beneficio del Asesor Experto? Algo me dice que es menos de 10 pips.
El problema está probablemente en los datos históricos: o están más peinados (filtrados), o simplemente son más correctos (por ejemplo, contienen los diferenciales correctos).
Moderadores, una pregunta para ustedes.
No puedo enviar una solicitud a servicedesk.
Y el botón de cierre no funciona
Moderadores, una pregunta para ustedes.
No puedo enviar una solicitud a servicedesk.
Y el botón "Cerrar" no funciona
Me gustaría saber si hay alguna alternativa al script de bucle infinito en el 5, porque dicho script es muy caprichoso, me gustaría que siguiera funcionando al reabrir el terminal o al cambiar el marco temporal?
Si está satisfecho con la frecuencia mínima de 1 segundo, entonces OnTimer, de lo contrario
Mientras no haya una operación de microsegundos en OnTimer.
posible pérdida de datos debido a la conversión del tipo ChartObject.mqh 481 4
posible pérdida de datos debido a la conversión de tipo ChartObject.mqh 867 17
posible pérdida de datos debido a la conversión de tipos ChartObjectsTxtControls.mqh 519 4
Bild 375 - vornings apareció en las bibliotecas estándar. Puede que haya alguno más, aún no lo he comprobado.
Si está contento con una frecuencia mínima de 1s entonces OnTimer, de lo contrario
Hasta OnTimer no hay operación de microsegundos.
¿Podría decirme cómo puedo saber si una operación se cerró con un stop loss?
En MT5 no es la operación la que se cierra en el stop loss, sino la posición, de momento sólo se puede saber por el comentario de la operación que cerró la posición en el stop loss. Aquí hay un ejemplo de código.
El EA se ha optimizado en el intervalo AB. Arriba hay una ejecución con estos parámetros en el intervalo AD. No entiendo qué pasa en el punto C.
No puedo entender que el Asesor Experto no esté optimizado prácticamente en el intervalo de CD. Tal vez haya un cambio en algunas normas comerciales después de 25.10.2010 (punto C) o algo más?
El EA se ha optimizado en el intervalo AB. Arriba hay una ejecución con estos parámetros en el intervalo AD. No entiendo qué pasa en el punto C.
Mientras que el Asesor Experto prácticamente no está optimizado en el intervalo de CD. Tal vez haya un cambio en algunas de las normas de comercio después de 25.10.2010 (punto C) o algo más?
¿Cuál es el tamaño medio de las operaciones de beneficio del Asesor Experto? Algo me dice que es menos de 10 pips.
El problema está probablemente en los datos históricos: o están más peinados (filtrados), o simplemente son más correctos (por ejemplo, contienen los diferenciales correctos).
¿Qué es el servidor?