SimpleDailyRangeBreakExpert - page 11

 

Je me demande pourquoi cette valeur de "3600" ajoutée à l'heure de départ. Cela rend cette histoire de décalage horaire peu claire pour moi. Igorad pourrait peut-être vous aider.

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;

}

}
 

Cette valeur de 3600 semble être la conversion des heures en secondes. Cela signifie pour moi que je commence à 09:00 heure du broker (gmt+0). mon problème est ailleurs.

 

Salut Flytox,

Je vais regarder cette EA maintenant (d'habitude je prends les déclarations une fois par jour en postant quelque chose d'intéressant). Je vais ouvrir cette EA avec metaEditor pour voir :

- peut-être que cette EA utilise un fichier Tracert ;

- ou peut-être que certaines paires mentionnées dans le code sont des EURUSD au lieu d'EURUSDm pour IBFX.

Quoi qu'il en soit, si vous définissez l'heure à 9 heures, alors l'EA devrait fermer tous les ordres rentables à 9 heures et ouvrir de nouveaux ordres en attente (à 9 heures également).

Je vais regarder cela maintenant.

 

J'ai fermé d'autres EA sur le même compte (TPE, TS,) et SBS a finalement placé des ordres en attente à 9:00 (heure du courtier). Les EA que j'ai supprimés avaient des numéros magiques différents. Existe-t-il une incompatibilité connue entre SBS123 et d'autres EA ?

 

J'ai regardé à l'intérieur du code de cette 1.23 et je n'ai pas vu de problème : cette EA n'utilise aucun fichier de l'extérieur et aucun indicateur. Donc, il doit fonctionner avec IBFX.

J'utilise cet EA/réglage (réglage par défaut (voir ce post). C'est le réglage pour le courtier GMT+3. Et j'ai EURUSD et GBPUSD avec TimeShift=9 (09 am pour l'heure du serveur de LiteForex qui est GMT+3 maintenant), USDJPY avec TimeShift=10 et USDCHF avec TimeShift=7. C'est pour GMT+3.

Si IBFX a l'heure GMT+0, cela peut être le suivant :

EURUSD et GBPUSD avec TimeShift=6 et ainsi de suite.

 

Bonjour ND,

Avez-vous vu mon post précédent concernant le conflit possible lorsque d'autres EA sont sur le même MT4 (même compte).

 
Flytox:
J'ai fermé d'autres EA sur le même compte (TPE, TS,) et SBS a finalement placé des ordres en attente à 9:00 (heure du courtier). Les EA que j'ai supprimés avaient des numéros magiques différents. Existe-t-il une incompatibilité connue entre SBS123 et d'autres EA ?

Incompatibilité ? Non.

Cela peut être le cas lorsque 2 EAs veulent modifier l'ordre, ou fermer/ouvrir l'ordre exactement dans le même temps en munites et secondes. Mais ce n'est pas un cas habituel. Fondamentalement, il est impossible d'utiliser plus de 3 EAs dans une copie de Metatrader pour cette raison (les EAs peuvent "s'interrompre" les uns les autres). 1 ou 2, ou peut-être 3 EAs dans une copie de Metatrader peuvent être parfaits mais cela dépend aussi des délais : par exemple nous pouvons utiliser un scalper sur M5 avec un EA travaillant sur le délai D1 et ainsi de suite. Parce que Metatrader, en tant que programme, ne peut pas faire deux choses simultanément : il ne peut pas modifier un ordre et supprimer l'autre ordre en attente exactement dans le même temps en minutes/secondes.

En ce qui concerne SBS_V1.23, EA va essayer de supprimer l' ordre en attente et d'en ouvrir un nouveau plusieurs fois jusqu'à ce qu'il soit terminé. SBS_V1.21 est le même : si Metatrader ne peut pas supprimer l'ordre en attente maintenant, Metatrader va essayer de le faire 1 minute plus tard, si l'échec - 1 minute plus tard une fois de plus jusqu'à ce que le travail sera fait. Donc je pense qu'il n'y a pas d'incompatibilité.

Les EAs similaires sont SBS_v1.21 et TPE EA.

Moins risqué est SBS_v1.21, plus risqué est TPE et plus risqué que TPE est SBS_v1.23 (juste un tri selon les riks pour les traders liés à la taille du dépôt de départ).

Si vous utilisez un nombre magique différent pour chaque EA, il n'y aura pas de conflit.

Bien sûr, si vous testez 5 EA dans une seule copie de Metatrader, il se peut que tout se passe bien, même avec un numéro magique différent. 5 EAs dans un Metatrader, c'est trop.

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

Merci pour vos réponses ND.

 

Veuillez trouver les déclarations mises à jour pour 2 versions.

Voir ce post et le fichier excel pour les relevés du début de la période de test https://www.mql5.com/en/forum/173383/page79.

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

Veuillez trouver la déclaration mise à jour pour la version SBS 1.23.

Dossiers :
sbs23.zip  35 kb