Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Oui monsieur, je n'ai fait qu'une seule transaction, mais votre exemple était excellent, il sera très utile comme base pour créer de nouveaux eas.
void OnTick()
{
double up = iIchimoku(NULL,5,9,26,52,3,0),
down = iIchimoku(NULL,5,9,26,52,4,0);
static bool was_above = true;
bool is_above = (MathMax(up,down)< Bid);
if(!trade_made && !was_above && is_above && open_orders()<1)
{
if(OrderSend(NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point)<0)
{
printf("OrderSend() failed. Error code: %i",GetLastError());
}
else t rade_made=true;
}
was_above = is_above;
}
int open_orders()
{
int count = 0;
for(int i=OrdersTotal()-1; i>=0; i--) // good habit to count down
{
if(!OrderSelect(i,SELECT_BY_POS)) continue; // select the order
if(OrderSymbol() != _Symbol) continue; // optional check for same symbol
if(OrderMagicNumber()!= magic_no) continue; // optional check for magic number
if(OrderType() < 2) count++; // 0 == OP_BUY and 1 == OP_SELL
}
return(count);
}
Marco : J'ai essayé votre nouvelle mise à jour, mais il ne fait aucun trade, j'ai mis juste la façon dont vous avez posté la dernière, juste enlevé le deuxième int, dans le ticket. Mais le premier trade n'est jamais fait sur strategy tester, que faire maintenant ?
Il devrait placer un trade parce que :
if (MathMax (up,down) < Bid )
ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
//| One Order.mq4 |
//| Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
bool order=0;int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(order==0)
{
double up=iIchimoku(NULL,5,9,26,52,3,0);
double down=iIchimoku(NULL,5,9,26,52,4,0);
{
if(MathMax(up,down)<Bid)
{
ticket=OrderSend(NULL,0,0.01,Ask,3,Bid-150*Point,Bid+100*Point);
{
if(ticket>-1)
{
order=1;
}
}
}
}
}
}
//+------------------------------------------------------------------+
Je viens de l'essayer et il a placé UN ordre...
Merci beaucouphonest_knave c'est exactement ce dont j'avais besoin, je vous en serai éternellement reconnaissant,
merci aussi à Mr Marco pour son aide.
Merci beaucouphonest_knave c'est exactement ce dont j'avais besoin, je vous en serai éternellement reconnaissant,
Vous êtes les bienvenus. Mais êtes-vous d'accord pour dire que la réponse est rarement aussi simple qu'elle le semble ? Ce qui peut expliquer certains des commentaires iciCODE Help( Urgent).
j'ai déjà supprimé ce commentaire, un simple EA est un problème pour moi, je ne sais pas vraiment quoi dire
Hey, nous apprenons tous encore. Et ton cœur était au bon endroit.
Je suis content que tu aies réglé ton problème.
Il y a plusieurs façons de faire la même chose... Marco et moi avons abordé le problème sous différents angles, et les deux sont également corrects.
Bonne chance
Oui, M.Marco vd Heijden, cela fonctionne exactement de la même manière que pour honest_knave, j'ai réessayé en me basant sur le dernier code dont vous disposez, cela a très bien fonctionné, je vais prendre les deux réponses, et utiliser la vôtre pour ce script car elle est plus similaire à l'idée originale.
Merci pour votre aide
Je crois que, d'après le code que vous postez, l'EA ne pourra plus ouvrir d'ordre. A moins que vous ne supprimiez l'EA du graphique, et que vous le rattachiez à nouveau (pour l'initialiser). Je suppose que c'était le but ?
Maintenant espérons qu'il choisisse la bonne direction :)
J'ai lu quelque part qu'un type avait oublié qu'il avait encore une position ouverte et devinez ce qui s'est passé... $$$$$
Je crois que, d'après le code que vous postez, l'EA ne pourra plus ouvrir d'ordre. A moins que vous ne supprimiez l'EA du graphique, et que vous le rattachiez à nouveau (pour l'initialiser). Je suppose que c'était le but ?