SimpleDailyRangeBreakExpert - página 11

 

Me pregunto por este valor "3600" añadido a la hora de inicio. Hace que esto del cambio de hora no me quede claro. Tal vez Igorad podría ayudar.

string TimeTrade = "00:00";

StartTime = StrToTime(TimeTrade) + TimeShift*3600;

if(CurTime() >= StartTime && CurTime() <= StartTime+3600)

{

if ( OrderOpenDate() < StrToTime(TimeToStr( StartTime,TIME_DATE)))

{

if( ScanTrades()>0 && !BuyInTrade && !SellInTrade) PendOrdDel();

Today = StrToTime(TimeToStr( StartTime,TIME_DATE));

if (Today != PrevDay )

{ DaysInTrade = DaysInTrade+1;

//Print(" Days=",DaysInTrade,"Today=",TimeToStr(Today,TIME_DATE),"PrevDay=", TimeToStr(PrevDay,TIME_DATE)) ;

}

if( TradePeriod > 0 )CloseOrdbyTime();

}

if(ScanTrades()<1 && Today != PrevDay )

{

spread= MarketInfo(Symbol(),MODE_SPREAD)*Point;

digit = MarketInfo(Symbol(),MODE_DIGITS);

Lotsi = MoneyManagement ( MM, Lots, MMRisk, LossMax);

//if (TrailingStop > 0) InitialStop=true;

ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);

open = rates_h1[0][1];

high=0; low=10000000;

for (i=24;i>=1;i--)

{

high = MathMax( high, rates_h1[3]);

low = MathMin( low , rates_h1[2]);

}

range =(high-low);

if ( Monday == 1 ) if(DayOfWeek()==1){BuyOrdOpen(); SellOrdOpen();}

if ( Tuesday == 1 ) if(DayOfWeek()==2){BuyOrdOpen(); SellOrdOpen();}

if ( Wednesday== 1 ) if(DayOfWeek()==3){BuyOrdOpen(); SellOrdOpen();}

if ( Thursday == 1 ) if(DayOfWeek()==4){BuyOrdOpen(); SellOrdOpen();}

if ( Friday == 1 ) if(DayOfWeek()==5){BuyOrdOpen(); SellOrdOpen();}

DaysInTrade = 0;

}

}
 

Este valor de 3600 parece ser la conversión de horas en segundos. Eso significa para mí que empiezo a las 09:00 hora del broker (gmt+0). mi problema es otro.

 

Hola Flytox,

Voy a mirar este EA ahora (por lo general estoy tomando las declaraciones una vez al día la publicación de algo inyeresting). Voy a abrir este EA con metaEditor para ver:

- puede ser este Ea está utilizando algún archivo Tracert;

- o puede ser algunos pares mencionados dentro del código como EURUSD inmstead de EURUSDm para IBFX.

De todos modos, si se establece el tiempo para las 9 entonces el EA debería cerrar todas las órdenes rentables a las 9 y abrir nuevas órdenes pendientes (a las 9 también).

Voy a mirar esto ahora.

 

Cerré otros EAs en la misma cuenta (TPE, TS,) y SBS colocó finalmente órdenes pendientes a las 9:00 (hora del broker). Los EAs que eliminé estaban con diferentes números mágicos. ¿Hay alguna incompatibilidad conocida entre SBS123 y otros EA's?

 

He mirado dentro del código de este 1.23 y no he visto ningún problema: este EA no está usando ningún archivo de fuera y ningún indicador. Por lo tanto, debe trabajar wioth IBFX.

Estoy usando este EA/configuración (configuración por defecto (ver este post). Es la configuración para el broker GMT+3. Y tengo EURUSD y GBPUSD con TimeShift=9 (09 am para el tiempo del servidor de LiteForex que es GMT+3 ahora), USDJPY con TimeShift=10 y USDCHF con TimeShift=7. Es para GMT+3.

Si IBFX tiene GMT+0 entonces puede ser lo siguiente:

EURUSD y GBPUSD con TimeShift=6 y así sucesivamente.

 

Hola ND,

¿has visto mi post anterior sobre el posible conflicto cuando otros EA están en la misma MT4 (misma cuenta).

 
Flytox:
Cerré otros EAs en la misma cuenta (TPE, TS,) y SBS colocó finalmente órdenes pendientes a las 9:00 (hora del broker). Los EAs que eliminé eran con diferentes números mágicos. ¿Hay alguna incompatibilidad conocida entre SBS123 y otros EA's?

¿Incompatibilidad? No.

Puede ser el caso cuando 2 EAs quieren modificar la orden, o cerrar/abrir la orden exactamente en el mismo tiempo en munitos y segundos. Pero no es un caso habitual. Básicamente es imposible usar más de 3 EAs en una copia de Metatrader por eso (los EAs pueden "interrumpirse" unos a otros). 1 o 2, o tal vez 3 EAs en una copia de Metatrader puede estar bien, pero también está relacionado con los marcos de tiempo: por ejemplo, podemos usar algún scalper en M5 junto con EA trabajando en el marco de tiempo D1 y así sucesivamente. Porque Metatrader como programa no puede hacer 2 cosas simultáneamente: no puede modificar una orden y eliminar la otra orden pendiente exactamente en el mismo tiempo en minutos/segundos.

En cuanto a este SBS_V1.23 así que EA tratará de eliminar la orden pendiente y abrir uno nuevo muchas veces hasta que se hará. SBS_V1.21 es lo mismo: si Metatrader no puede eliminar la orden pendiente ahora, entonces Metatrader intentará hacerlo 1 minuto más tarde, si falla - 1 minuto más tarde una vez más hasta que el trabajo esté hecho. Así que creo que no hay ninguna incompatibilidad.

EAs similares son SBS_v1.21 y TPE EA.

Menos de riesgo es SBS_v1.21, más arriesgado es TPE y más arriesgado que TPE es SBS_v1.23 (sólo la clasificación de acuerdo a los riesgos para los comerciantes relacionados con el tamaño del depósito inicial).

Si utiliza un número mágico diferente para cada EA, no habrá ningún conflicto.

Por supuesto, si usted está probando 5 EAs en una copia de Metatrader por lo que puede ser todo, incluso con diferente número mágico. 5 EAs en un Metatrader es demasiado.

Archivos adjuntos:
sbs121.zip  18 kb
tpe12.zip  17 kb
 

Gracias por tus respuestas ND.

 

Por favor, encuentre las declaraciones actualizadas para 2 versiones.

Ver este post y el archivo excel para las declaraciones desde el inicio del período de prueba https://www.mql5.com/en/forum/173383/page79

Archivos adjuntos:
sbs121_1.zip  18 kb
sbs123.zip  50 kb
 

Por favor, encuentre la declaración actualizada para la versión SBS 1.23.

Archivos adjuntos:
sbs23.zip  35 kb