Questions de base ... - page 9

 
Zen_Leow:
matrixebiz, avez-vous envisagé la possibilité qu'une transaction s'ouvre et se ferme dans la même bougie avant que celle-ci ne soit fermée ? vous devriez probablement vérifier la liste des historiques également.

J'ai toujours porté cette petite fonction que j'ai écrite à tous mes EAs, peut-être la trouverez-vous utile aussi.

bool DecideToOpenTrade()

{

int total = OrdersTotal();

if (total > 0)

{

for(int cnt=0;cnt<total;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

return (false);

}

}

}

}

// in case trades has already opened and closed within the candle

int histotal = OrdersHistoryTotal();

if (histotal > 0)

{

for(cnt=0;cnt<histotal;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

if (Time[0] <= OrderOpenTime()) // don't open a new position if we're still on the same candle

{

return (false);

}

}

}

}

}

return (true);

}

int start()

{

// some time check codes first.. blah blah

// ...

// ...

// ...

// check signals

if (Should_Buy())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

if (Should_Sell())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

}

note : cette fonction suppose que vous avez défini une valeur unique à EA_MAGIC_NUM. De cette façon, la vérification ne regardera pas les transactions ouvertes par d'autres EAs.

Should_Buy() et Should_Sell() sont des fonctions que je crée dans tous mes EAs pour déterminer si un signal d'achat ou de vente s'est produit.

J'espère que cela vous aidera. Envoyez-moi un message si vous avez besoin d'autres éclaircissements.

salutations,

Zen

Merci Zen Je pense que cela va me convenir Je dois juste probablement faire quelques changements parce que mon EA est un EA de trading multi-devises et c'est pourquoi je n'étais pas capable de vérifier une devise spécifique sans savoir avec quelle paire de devises l'EA avait tradé, d'où la raison pour laquelle le code que je dois changer pour chercher un OrderComment() spécifique au lieu de ce que vous avez OrderSymbol(). J'utilisais le code ci-dessous pour vérifier si des transactions existaient déjà, mais j'avais des difficultés à vérifier si des transactions étaient déjà fermées sur la même barre.

for(int i=totalorders-1;i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS) ;

si (OrderComment() == EA_Name + MagicNumber) GoOrders = false ; }

if (GoOrders){orders();}

 

1 transaction par signal

Bonjour à tous ceux qui peuvent m'aider

Je suis très novice en matière de codage et j'ai un problème avec un ea sur lequel je travaille. J'aimerais beaucoup que cet ea place un trade et attende ensuite un autre signal avant d'entrer dans un autre trade.

En ce moment, il place un trade et dès que ce trade se ferme, il entre dans un autre trade sans attendre le prochain signal. Je voudrais savoir si quelqu'un connaît le code que j'utilise pour attendre le prochain signal avant d'entrer à nouveau.

merci d'avance pour toute aide

 

Aidez-moi à résoudre cette erreur

Je travaille sur cet expert depuis peu, mais je n'arrive toujours pas à supprimer cette erreur. J'espère vraiment que quelqu'un ici pourra m'aider à faire en sorte que cet expert ferme un ordre lorsque la condition est dans la direction opposée....

Voici l'erreur ;

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1 : ticket inconnu 197 pour la fonction OrderClose

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1 : erreur OrderClose 4108

merci d'avance.

int start()

{

si( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0) <iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_SELL, Lots,Bid, 0,Bid+StopLoss* Point,Bid- TakeProfit* Point,"", SystemMagicNumbe r,0,Red) ;

retour(0) ;

}

if( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_BUY, Lots,Ask, 0,Ask-StopLoss* Point,Ask+ TakeProfit* Point,"", SystemMagicNumbe r,0,Blue) ;

return(0) ;

}

if (OrderType() ==OP_SELL)

{

si (iMA(NULL,0,5,0,MODE_ EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0))

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;

return(0) ;

}

}

if (OrderType() ==OP_BUY)

{

si (iMA(NULL,0,5,0,MODE_ EMA, PRICE_CLOSE, 0)<iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0))

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;

return(0) ;

}

}

 

Comment créer un objet ligne finie

Il est possible de créer un trendline_object qui est infini. Mais comment puis-je dessiner une ligne finie d'un point à un autre ? Merci pour toute réponse.

 
MetaMaster:
Il est possible de créer un trendline_object qui est infini. Mais comment puis-je dessiner une ligne finie d'un point à un autre ? Merci pour toute réponse.

définir OBJPROP_RAY à false

 

L'EA envoie un ordre chaque tick après le signal. AIDE.

En ce moment j'étudie pour faire un EA.

comment faire comprendre à l'EA que je veux juste envoyer un ordre à chaque fois qu'un signal apparaît.

la logique est la suivante

avant de donner le signal, il reste calme,

immédiatement après l'apparition du signal, il envoie un ordre, une fois.

et attend un autre signal.

Le problème est le suivant

cet Ea devrait être capable d'envoyer un ordre, que l'ordre précédent ait été liquidé ou non.

Je ne peux donc pas le coder pour qu'il envoie un ordre seulement après la fermeture de l'ordre précédent.

Merci.

 

aide pour une ea basée sur un indicateur

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

chers tous

j'ai un indicateur (3ma cross avec signal)je dois le changer en ea , puis-je copier ind init() vers expert init() et ind start() vers expert start() et ensuite mettre la fonction sell et buy quand la flèche me donne le signal ?

Je l'ai fait mais ça ne marche pas

Dossiers :
 

Aide pour un problème de codage

Bonjour

J'essaie d'écrire un EA très simple qui ouvre un certain nombre d'ordres en attente à intervalles fixes. En cours d'utilisation, il ouvre les ordres mais continue à les ouvrir sans fin. Comment puis-je le coder de façon à ce que les ordres ne s'ouvrent qu'une seule fois, et que si un ordre devient actif et atteint le TP ou le SL, il soit remplacé par un nouvel ordre en attente de la liste originale ?

Merci beaucoup pour toute aide offerte,

Dan

 

Une transaction par nombre magique ?

Je suis en train d'écrire un script pour un EA qui ouvrira automatiquement une transaction sur la base de décisions de trading manuelles. Par exemple, je regarde le graphique et je détermine le prix auquel je veux que l'ordre soit ouvert, le stop et le take, etc.... Je règle ensuite l'EA et lorsque le prix est atteint, il ouvre la transaction.

Je dois faire en sorte que l'EA n'ouvre qu'une seule transaction par nombre magique. Je vais définir manuellement le nombre magique et chaque nombre sera unique. De cette façon, si la transaction est ouverte puis stoppée, l'EA n'essaiera pas d'ouvrir une autre transaction si le prix de la transaction est à nouveau atteint.

Avez-vous des idées sur la meilleure façon d'y parvenir ? Des exemples de code seraient également utiles.

 

...

jerzzhere:
Je suis en train d'écrire un script pour un EA qui ouvrira automatiquement un trade basé sur des décisions de trading manuelles. Par exemple, je regarde le graphique et détermine le prix auquel je veux que l'ordre soit ouvert, le stop et le take, etc... Je règle ensuite l'EA et lorsque le prix est atteint, il ouvre la transaction.

Je dois faire en sorte que l'EA n'ouvre qu'une seule transaction par numéro magique. Je vais définir manuellement le nombre magique et chaque nombre sera unique. De cette façon, si la transaction est ouverte puis arrêtée, l'EA n'essaiera pas d'ouvrir une autre transaction si le prix de la transaction est à nouveau atteint.

Avez-vous des idées sur la meilleure façon d'y parvenir ? Des exemples de code seraient également utiles

J'avais un fil de discussion sur ce forum qui proposait une solution de numéro magique... Malheureusement, Davidke et Walander ont détesté mes idées novatrices et ont poussé des hauts cris sur tout le forum... Par conséquent, mon fil de discussion a été supprimé...

Raison: