Comment coder ? - page 64

 

Merci beaucoup pour votre réponse. Ce n'est pas un problème avec les arguments, le calcul dans la boucle est correct. Je pense que le problème vient du deuxième appel à iMAonArray en dehors de la boucle de la fonction.

Salutations

 

Meilleure façon d'ajouter la limite de MaxBarsToCount (History)

Lorsque nous limitons MaxBarsToCount (History), il faut parfois ajouter la correction, etc.

Est-ce que la meilleure façon (la plus sûre, la plus facile, universelle) existe ?

----------------------

comme ici nous avons le lissage léger de fisher 4 stoch :

----------

int start()

{

int counted_bars=IndicatorCounted() ;

//---- vérifier les erreurs éventuelles

if(counted_bars<0) return(-1) ;

int limit=Bars-counted_bars ;

if(limit>maxbars)limit=maxbars ;

si (limit>Bars-lenth-1)limit=Bars-lenth-1 ;

//----

for (int shift = limite ; shift>=0;shift--)

{

AuxBuffer[shift]=(iStochastic(NULL,0,lenth,2,1,MODE_SMA,0,MODE_MAIN,shift)/100-0.5)

+0.5*AuxBuffer[shift+1];

FishBuffer[shift]= 0.25* MathLog((1+AuxBuffer[shift])/(1-AuxBuffer[shift]))+

0.5*FishBuffer[shift+1];

SignalBuffer[shift]=FishBuffer[shift+1] ;

}

//----

retour(0) ;

}

------------------------

pour le pêcheur limite f-la :

int limite ;

int counted_bars=IndicatorCounted() ;

if(counted_bars>0) counted_bars-- ;

limit=Bars-counted_bars ;

for(int i=limit ; i>=0 ; i--)

{

....

pour Stoch :

int start()

{

int i,k ;

int counted_bars=IndicatorCounted() ;

double prix ;

//----

if(Bars<=draw_begin2) return(0) ;

//---- zéro initial

if(counted_bars<1)

{

for(i=1;i<=draw_begin1;i++) MainBuffer=0 ;

for(i=1;i<=draw_begin2;i++) SignalBuffer=0 ;

}

//---- comptage des minimums

i=Bars-KPeriod ;

if(counted_bars>KPeriod) i=Bars-counted_bars-1 ;

while(i>=0)

{

double min=1000000 ;

k=i+KPeriod-1 ;

alors que(k>=i)

{

price=Low[k] ;

if(min>price) min=price ;

k-- ;

}

LowesBuffer=min ;

i-- ;

}

....

p.s. dans l'indicateur ci-joint, basé sur la transformée de fisher propre et le Stoch ; MaxBars doit être redressé un peu... (quand MaxBars sort - pas de problème)

 

Bonjour,

Merci beaucoup à vous tous. Il fonctionne bien maintenant et un seul ordre par barre est ouvert. Ce qui est bien avec un EA comme celui-ci, c'est que nous pouvons utiliser l'option"Open price only" pour le backtesting, qui est plus rapide que l'option "per tick".

 
Michel:
Bonjour Omelette, Savez-vous que BT a un problème pour regarder dans l'historique : il regarde l'historique réel, pas celui de BT. J'ai demandé à Metaquote il y a quelques mois à propos de ce bug mais ils n'ont pas eu de réponse..... Peut-être que maintenant c'est corrigé...

Michel, merci pour l'info. Wow, je ne le savais pas - et je considère cela comme un énorme bug ! !!

Pour vérifier cela (avec MT 208), j'ai utilisé l'information OrdersHistoryTotal() pour décider de la direction du trade sur un martingaler, et j'ai utilisé des 'moyens conventionnels' sur une autre version - la courbe d'équité pour les deux 'devrait' être identique. C'est ce que j'ai trouvé.........

Je viens également de vérifier avec la dernière version de Metatrader et le bug est toujours là - incroyable.....

 

Besoin de code MQL

Bonjour,

J'ai besoin de quelques codes que je puisse intégrer dans une EA.

1) J'ai besoin de mettre une restriction à mon EA comme ça, il ne doit pas ouvrir de position entre 14h00 et 17h00. Comment puis-je faire cela ? S'il vous plaît, donnez-moi ce code simple et dites-moi où je peux le placer dans l'EA.

2) Je ne veux pas mettre de SL dans l'EA pour ouvrir une position à cause de la chasse au SL par le courtier. Donc, j'ai besoin de mettre une vérification sur l'EA que "si le profit total sur la position ouverte est +20 points alors fermez la position".

Je serai très reconnaissant aux supporters qui soutiennent toujours les autres !

Meilleures salutations,

Kashif.

 
oilfxpro:
.....L'EA peut-il consulter les taux actuels et historiques des swaps ? OILFXPRO

Je crains que non.

PS - ma réponse semble trompeuse. Je voulais dire que vous ne pouvez pas récupérer les taux de swap historiques - il n'y a aucun problème pour obtenir les taux actuels...

 

plusieurs commandes en même temps

Bonjour,

Je veux programmer dans un Expert Advisor ce qui suit :

Je voudrais ouvrir plusieurs ordres en même temps (3-6 ordres).

1. Ordre : Volume ; T/P ; S/L ; T/S

.

.

.

5. Commande : Volume ; T/P ; S/L ; T/S

Pouvez-vous m'aider ?

Merci

derumuro

 

J'ai besoin d'apprendre quelque chose.

Bonjour à tous

J'ai besoin d'une aide en programmation pour un code simple qui est :

Si le prix du marché > valeur MA par delta pips ouvrir acheter.

Si le prix du marché < la valeur MA par delta pips ouvrir vendre.

Avec TP SL et TS. Est-ce qu'un programmeur expert peut m'apprendre comment écrire ce code ?

Merci de votre compréhension.

 

Que dois-je faire pour modifier ce code afin que les ordres ne soient ouverts que lorsque les trois indicateurs sont synchronisés, soit à la hausse (bleu), soit à la baisse (rouge), manuellement, cela fonctionne bien et est assez simple pour que je puisse suivre LOL.

J'ai utilisé une ancienne ea comme modèle et j'ai essayé d'ajouter les indicateurs pour créer les bons signaux. Pour le moment, les ordres sont ouverts avec le TM ou le HAS.

J'ai joint l'ea et la performance pour les deux derniers jours. Je sais que cela ne veut rien dire mais il y a du potentiel. IMO

Quelqu'un pourrait-il m'indiquer la bonne direction ?

Cheers

Beno

 

Existe-t-il un moyen de coder cette fonction d' inclusion de façon à ce qu'il n'y ait AUCUNE chance qu'elle reste "coincée" dans sa boucle ?

int CBM(int intMagic)//CloseByMagic

{

int intOffset=0;

while(OTBM(intMagic)>0)

{

OrderSelect(intOffset,SELECT_BY_POS);

if(OrderMagicNumber()==intMagic)

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),999,Red);

if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),999,Orange);

}

else {

intOffset++;

}

}

return(0);

}

Merci à tous ceux qui pourront vous aider.