SimpleDailyRangeBreakExpert - pagina 11

 

Mi chiedo per questo valore "3600" aggiunto all'ora di inizio. Non mi è chiara questa cosa dello spostamento di tempo. Forse Igorad potrebbe aiutare.

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;

}

}
 

Questo valore 3600 sembra essere la conversione delle ore in secondi. Che significa per me che inizio @ 09:00 broker time (gmt+0). il mio problema è altrove.

 

Ciao Flytox,

Ora guarderò questo EA (di solito prendo le dichiarazioni una volta al giorno postando qualcosa di interessante). Aprirò questo EA con metaEditor per vedere:

- può essere che questo EA stia usando qualche file Tracert;

- o possono essere alcune coppie menzionate all'interno del codice come EURUSD invece di EURUSDm per IBFX.

Comunque, se imposti il tempo per le 9, l'EA dovrebbe chiudere tutti gli ordini redditizi alle 9 e aprire nuovi ordini pendenti (sempre alle 9).

Ora guarderò questo.

 

Ho chiuso altri EA sullo stesso conto (TPE, TS,) e SBS ha piazzato finalmente ordini pendenti alle 9:00 (ora del broker). Gli EA che ho rimosso erano con diversi numeri magici. C'è qualche incompatibilità nota tra SBS123 e altri EA?

 

Ho guardato all'interno del codice di questa 1.23 e non ho visto alcun problema: questo EA non utilizza alcun file dall'esterno e nessun indicatore. Quindi, deve funzionare con IBFX.

Sto usando questo EA/impostazione (impostazione predefinita (vedi questo post). È l'impostazione per il broker GMT+3. E ho EURUSD e GBPUSD con TimeShift=9 (09 am per il tempo del server LiteForex che è GMT+3 ora), USDJPY con TimeShift=10 e USDCHF con TimeShift=7. È per GMT+3.

Se IBFX ha GMT+0, allora potrebbe essere il seguente:

EURUSD e GBPUSD con TimeShift=6 e così via.

 

Ciao ND,

hai visto il mio post precedente riguardante il possibile conflitto quando altri EA sono sullo stesso MT4 (stesso conto).

 
Flytox:
Ho chiuso altri EAs sullo stesso conto (TPE, TS,) e SBS ha piazzato finalmente ordini pendenti alle 9:00 (ora del broker). Gli EA che ho rimosso erano con diversi numeri magici. C'è qualche incompatibilità nota tra SBS123 e altri EA?

Incompatibilità? No.

Può essere il caso quando 2 EAs vogliono modificare l'ordine, o chiudere/aprire l'ordine esattamente nello stesso tempo in muniti e secondi. Ma non è un caso usuale. Fondamentalmente è impossibile usare più di 3 EAs in una copia di Metatrader per questo motivo (gli EAs possono "interrompersi" a vicenda). 1 o 2, o forse 3 EAs in una copia di Metatrader può andare bene, ma è anche legato ai timeframes: per esempio possiamo usare uno scalper su M5 insieme ad un EA che lavora sul timeframe D1 e così via. Perché Metatrader come programma non può fare 2 cose contemporaneamente: non può modificare un ordine e cancellare l'altro ordine pendente esatto nello stesso tempo in minuti/secondi.

Per quanto riguarda questo SBS_V1.23 l'EA proverà a cancellare l'ordine in sospeso e ad aprirne uno nuovo molte volte fino a quando non sarà fatto. SBS_V1.21 è la stessa cosa: se metatrader non può cancellare l'ordine in sospeso ora, allora Metatrader cercherà di farlo 1 minuto dopo, se fallisce - 1 minuto dopo ancora una volta fino a quando il lavoro sarà fatto. Quindi penso che non ci sia alcuna incompatibilità.

EA simili sono SBS_v1.21 e TPE EA.

Meno rischioso è SBS_v1.21, più rischioso è TPE e più rischioso di TPE è SBS_v1.23 (solo ordinando secondo i rischi per i trader relativi alla dimensione del deposito iniziale).

Se usi un numero magico diverso per ogni EAs non ci saranno conflitti.

Naturalmente, se si stanno testando 5 EAs in una copia di Metatrader, allora potrebbe essere tutto anche con un numero magico diverso. 5 EAs in un solo Metatrader è troppo.

File:
sbs121.zip  18 kb
tpe12.zip  17 kb
 

Grazie per le tue risposte ND.

 

Trovate le dichiarazioni aggiornate per 2 versioni.

Vedi questo post e il file excel per le dichiarazioni dall'inizio del periodo di test https://www.mql5.com/en/forum/173383/page79

File:
sbs121_1.zip  18 kb
sbs123.zip  50 kb
 

Si prega di trovare la dichiarazione aggiornata per la versione SBS 1.23.

File:
sbs23.zip  35 kb
Motivazione: