[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 918

 
Comment déterminer quel type d'ordre est un ordre de vente ou d'achat, ouvert et pour quel lot ?
 
Maniac:

Salut ! Mon conseiller expert a le code suivant (voir ci-dessous). Je comprends que le signal pour ouvrir une position est pris à partir des valeurs de deux indices. Comment faire pour que l'ordre soit ouvert sur la base d'un seul indicateur, par exemple CCI ? Merci beaucoup.

Au lieu d'appeler getSignal() pour déterminer le critère d'ouverture, appelez soit checkCCI() soit checkMomentum(). Ces deux fonctions renvoient les mêmes signaux que getSignal(), à savoir 0, 1 et -1.

La fonction getSignal() compare simplement deux valeurs retournées par checkCCI() et checkMomentum() et si elles correspondent, elle retourne 1 (pour l'achat) ou -1 (pour la vente), ou 0 si rien n'est fait...

 
_SS_:
Comment savoir quel type d'ordre est Vendre ou Acheter, et pour quel lot ?

Pour énumérer les ordres du terminal, vérifiez le magik de l'ordre sélectionné, son type et son lot.

Le magik est utilisé pour identifier si l'ordre appartient à votre EA ou non, et le type et le lot sont les valeurs que vous recherchez.

Si vous recherchez le dernier ordre ouvert, comparez son heure d'ouverture avec celle des autres ordres et, si son heure est la plus longue, alors c'est lui.

Si vous recherchez un ticket, vous devez le sélectionner en utilisant le ticket mais gardez à l'esprit que la sélection se fait à partir de deux tableaux - les ordres au marché et les ordres fermés.

Pour savoir si l'ordre est un ordre au marché, vous devez vérifier l'heure de sa clôture et si elle est supérieure à zéro (et seulement dans ce cas), alors l'ordre est déjà clôturé, sinon - c'est un ordre au marché.

 
comment faire sortir le magicien ?
 
forex-k:
Cela devrait fonctionner. Le smiley sourit-il ?


extern double StopLoss=50.0 ;
extern double TakeProfit=50.0 ;
extern double Lots=1 ;
extern int total ;

int start()
{
double Price_1, Price_2, min, max ;
RefreshRates() ;
Price_1=Bid ;
Price_2=Ask ;

min=iLow(NULL,0,2) ;
max=iHigh(NULL,0,2) ;
total=OrdersTotal() ;
if(total<1)
{

if(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-StopLoss*Point,Ask+TakeProfit*Point, "My order#",16384,0,Green) ;

if(Price_2<min)
OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+StopLoss*Point,Bid-TakeProfit*Point, "My order#",16384,0,Green) ;
}
}
retour(0) ;

Oui, ça marche, le smiley sourit tout le temps, mais ça ne marche pas, les positions ne s'ouvrent pas.

 
rustein:

Aide, l'EA ne ferme pas tous les ordres lorsqu'il atteint un profit.

Les ordres ouverts et en attente sont fermés avec des fonctions différentes


void CloseAllOrders()
{
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS))
{
if (OrdersTotal() > 1 && OrderSymbol() == Symbol() && AccountProfit() >= AccountBalance()*AllProfit/100)
{
if((OrderType()==OP_BUY)) OrderClose(OrderTicket(), OrderLots(),Bid,0);
if((OrderType()==OP_SELL)) OrderClose(OrderTicket(), OrderLots(),Ask,0);
if((OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT|| OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT))OrderDelete(OrderTicket());
if(UseSound == true)
{
PlaySound(SuccesSound);
}
}
}
}
}
 
forex-k:

les ordres ouverts et en attente sont fermés par des fonctions différentes


Merci :)
 

Pouvez-vous me dire comment supprimer les objets créés par l 'indicateur dans la fenêtre lorsque l'indicateur lui-même est supprimé du graphique ?

 
Maniac:

Bonjour à tous ! L'EA a le code suivant (voir ci-dessous). Si je comprends bien, le signal pour ouvrir une position est pris à partir des indicateurs de deux indices. Comment faire pour que les ordres soient ouverts sur la base d'un seul indicateur, par exemple le CCI ? Merci beaucoup.


int getSignal() { 
   int CCI = checkCCI();
   return (CCI);
}
int checkCCI() {
   double CCI = iCCI(NULL, 0, 60, PRICE_TYPICAL, 1);
   Print("CCI: ", CCI);
   if (CCI > 0.0) return (1);
   if (CCI < 0.0) return (-1);
   return (0);
} 
 

Bon après-midi à tous. J'ai besoin d'une fonction pour rechercher les hauts et les bas dans un nombre N de barres. Disons hai/low pour 55 barres. Je l'ai vu quelque part - je ne le trouve pas.