//+------------------------------------------------------------------+//| Enum Lor or Risk |//+------------------------------------------------------------------+enum ENUM_LOT_OR_RISK
{
lots=0, // Constant lot
risk=1, // Risk in percent
};
//+------------------------------------------------------------------+
inputdouble MaximumRisk = 0.01; // Maximum Risk in percentageinputdouble DecreaseFactor = 3; // Descrease factorinput ENUM_LOT_OR_RISK InpLotOrRisk = lots; // Money management: Lot OR Risk
//+------------------------------------------------------------------+//| Calculate optimal lot size |//+------------------------------------------------------------------+double TradeSizeOptimized(void)
{
double price=0.0;
double margin=0.0;
//--- select lot sizeif(!SymbolInfoDouble(_Symbol,SYMBOL_ASK,price))
return(0.0);
if(!OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1.0,price,margin))
return(0.0);
if(margin<=0.0)
return(0.0);
double lot=0;
//---switch(InpLotOrRisk)
{
case lots:
lot=MaximumRisk;
break;
case risk:
lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
default:
break;
}
//--- calculate number of losses orders without a breakif(DecreaseFactor>0)
{
//--- select history for accessHistorySelect(0,TimeCurrent());
//---int orders=HistoryDealsTotal(); // total history dealsint losses=0; // number of losses orders without a breakfor(int i=orders-1; i>=0; i--)
{
ulong ticket=HistoryDealGetTicket(i);
if(ticket==0)
{
Print("HistoryDealGetTicket failed, no trade history");
break;
}
//--- check symbolif(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
continue;
//--- check Expert Magic numberif(HistoryDealGetInteger(ticket,DEAL_MAGIC)!=Magic_Number)
continue;
//--- check profitdouble profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
if(profit>0.0)
break;
if(profit<0.0)
losses++;
}
//---if(losses>1)
lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//--- normalize and check limitsdouble stepvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
lot=stepvol*NormalizeDouble(lot/stepvol,0);
double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
if(lot<minvol)
lot=minvol;
double maxvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
if(lot>maxvol)
lot=maxvol;
//--- return trading volumereturn(lot);
}
//+------------------------------------------------------------------+
donde lote - insertarTradeSizeOptimized()
Tengo que corregirlo en Expert Advisor - de lo contrario no es correcto allí
1 posibilidad : la línea 1 abrirá la línea 4 a una distancia determinada, la línea 2 abrirá la línea 3 a una distancia determinada.
2ª posibilidad: la línea 7 abrirá una línea 10 a una distancia determinada , que se mueve detrás del precio y cuando éste la toca, se dispara una orden. la línea 8 abrirá una línea 9 a una distancia determinada, - la misma acción que para 7 y 10.
#versión de la propiedad "1.01"
Hay otra opción - lalínea 1abrirá 4 y 9.la línea 2 abrirá 3 y 10.
Resultó ser otra posibilidad - lalínea 1abrirá 4 y 9. la línea 2 abrirá 3 y 10.
la línea 7 abrirá 10 y 3 . la línea 8 abrirá 9 y 4
para abrir las posiciones en sentido inverso y no tocar elcomando de configuraciónObj::
hay una inversión -
ahora he comenzado la prueba - no haré nada hasta el final del mes, me pregunto qué pasará. - lote, lo he puesto en riesgo - de alguna manera calculará
probablemente no es suficiente - debería haber sido más. ahora tenemos que esperar de nuevo, puntos de entrada y establecer el TargetProfit = 35000.00;// Target Profit
//+------------------------------------------------------------------+inputstring t0="------ Parameters --------"; // Настройка Экспертаinputstring Template = "ADX"; // Имя шаблона(without '.tpl')inputdatetime HoursFrom = D'1970.01.01'; // Время старта Экспертаinputdatetime HoursTo = D'2030.12.31'; // Время закрытия всех позицийinputdouble TargetProfit = 900000.00; // Целевая прибыльinputuint maxLimits = 1; // Кол-во Позиции Открыть в одну сторонуinputdouble MaximumRisk = 0.01; // Maximum Risk in percentageinputdouble DecreaseFactor = 3; // Descrease factorinput ENUM_LOT_OR_RISK InpLotOrRisk = lots; // Money management: Lot OR Risk
abre posiciones desde el indicador de líneas pivote timezone.mq5 desde la línea R2 - abajo S2 - arriba
el indicador no se puede borrar - sus líneas se actualizan al día siguiente
probablemente no es suficiente - debería haber sido más. ahora tenemos que esperar de nuevo, puntos de entrada y establecer el TargetProfit = 35000.00; // Target Profit
abre posiciones desde el indicador de líneas pivote timezone.mq5 desde la línea R2 - abajo S2 - arriba
el indicador no se puede borrar - sus líneas se actualizan al día siguiente
de prescribir correctamente el riesgo
donde lote - insertarTradeSizeOptimized()
Tengo que corregirlo en Expert Advisor - de lo contrario no es correcto allí
renombrado - experto completado. todos los errores corregidos. Título <Movimiento del caballo ><Movimiento del caballo
Añadido al anterior Experto, dos métodos para la línea Horizontal.
1 posibilidad : la línea 1 abrirá la línea 4 a una distancia determinada, la línea 2 abrirá la línea 3 a una distancia determinada.
2ª posibilidad: la línea 7 abrirá una línea 10 a una distancia determinada , que se mueve detrás del precio y cuando éste la toca, se dispara una orden. la línea 8 abrirá una línea 9 a una distancia determinada, - la misma acción que para 7 y 10.
#versión de la propiedad "1.01"
Hay otra opción - lalínea 1abrirá 4 y 9.la línea 2 abrirá 3 y 10.
lalínea 7abrirá 10 y 3 .la línea 8 abrirá 9 y4
para abrir las posiciones en el reverso y no toque elcomando de configuraciónObj::
hay una inversión -
#versión de la propiedad "1.01"
Resultó ser otra posibilidad - lalínea 1abrirá 4 y 9. la línea 2 abrirá 3 y 10.
la línea 7 abrirá 10 y 3 . la línea 8 abrirá 9 y 4
para abrir las posiciones en sentido inverso y no tocar elcomando de configuraciónObj::
hay una inversión -
ahora he comenzado la prueba - no haré nada hasta el final del mes, me pregunto qué pasará. - lote, lo he puesto en riesgo - de alguna manera calculará
¡No está mal! Lentamente - pero está mejorando
¡Sí! Va directamente a la cima.
renombrado - experto completado. todos los errores corregidos. Título <Movimiento del caballo ><Movimiento del caballo
Interesante asesor experto.
setinput double TargetProfit = 30000.00;// Beneficio objetivo
probablemente no es suficiente - debería haber sido más. ahora tenemos que esperar de nuevo, puntos de entrada y establecer el TargetProfit = 35000.00;// Target Profit
abre posiciones desde el indicador de líneas pivote timezone.mq5 desde la línea R2 - abajo S2 - arriba
el indicador no se puede borrar - sus líneas se actualizan al día siguiente
el indicador está abajo - buscaré el enlace al indicador en el sitio webhttps://www.mql5.com/ru/code/1114
setinput double TargetProfit = 30000.00; // Beneficio objetivo
probablemente no es suficiente - debería haber sido más. ahora tenemos que esperar de nuevo, puntos de entrada y establecer el TargetProfit = 35000.00; // Target Profit
abre posiciones desde el indicador de líneas pivote timezone.mq5 desde la línea R2 - abajo S2 - arriba
el indicador no se puede borrar - sus líneas se actualizan al día siguiente
el indicador de abajo - ahora buscando en el sitio web el enlace al indicadorhttps://www.mql5.com/ru/code/1114
esta es una de las opciones. pero hay un millón de opciones
Se me olvidó decir lo del lote - ajustado a la entrada de riesgo ENUM_LOT_OR_RISK InpLotOrRisk = lotes;// Gestión del dinero: Lote O Riesgo
(información experta en .log) qué avisos se emiten https://www.mql5.com/ru/docs/event_handlers/ondeinit#versión de la propiedad "1.02"
encontró otra forma para los botones
aquí seleccionamos
en la apertura de la posición - el stop loss se fija inmediatamente ( línea horizontal amarilla)
ajustado aquí -input double InpStopLoss = 55;// Obj: Stop Loss, en pips (1.00045-1.00055=1 pips)
desactivar set 0