[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 841

 
etroplus:

Veuillez me conseiller !

Existe-t-il une fonction qui renvoie la valeur de profit d'une position ouverte en pips ?

(Bid - OrderOpenPrice())/Point;    //для ордеров BUY
(OrderOpenPrice() - Ask)/Point;    //для ордеров SELL
 
webgreck:

vérifier s'il y a eu un changement de date et utiliser les fonctions

MarketInfo(Symbol(),MODE_SWAPSHORT);
MarketInfo(Symbol(),MODE_SWAPLONG);
 
alsu:

vérifier si la date a changé et utiliser les fonctions


Comment pouvez-vous contrôler la date ? Elle ne change pas. Regardez la capture d'écran.

 
webgreck:


J'ai beaucoup d'ordres qui doivent être travaillés différemment : quel type de trailing, quel type d'objectifs fixes et fixer la parité, mais je ne peux pas faire face à cette tâche car après que la transaction soit fermée et ouverte à cause du swap, cela change le numéro de ticket, donc je ne peux pas utiliser le numéro de ticket pour identifier la position pour savoir quoi faire avec.

Veuillez m'indiquer comment traiter le swap et comment identifier une transaction et savoir si j'ai déjà fixé la parité sur celle-ci ou non, etc.


Dans ces cas, le "numéro magique de la commande" peut être utilisé activement.
 
abolk:

Dans ces cas, l'ordre des numéros magiques peut être utilisé activement.

J'utilise déjà le nombre magique pour identifier les trois types de signaux... Si j'ai déjà placé la parité pour une pose, je devrais probablement réfléchir à un moyen d'utiliser le nombre magique pour déterminer si j'ai déjà placé la parité. Par exemple, nous pouvons donner une valeur de nombre magique à une commande, mais pour autant que je sache, nous ne pouvons pas modifier le nombre magique ... ou ai-je tort ? nous ne pouvons lui donner une valeur que lors de la définition de l'ordre, mais que pouvons-nous écrire dans le numéro magique, afin de pouvoir vérifier si la parité a déjà été définie pour l'ordre ?
 
webgreck:

Je l'utilise déjà pour identifier les trois types de signaux... Si votre algorithme est étroitement lié à l'identification des commandes, alors j'ai besoin de connaître votre algorithme pour m'aider dans ce cas.

Si votre algorithme est étroitement lié à l'identification des commandes, nous devons connaître votre algorithme pour vous aider dans ce cas.
 
abolk:

Si votre algorithme est étroitement lié à l'identification des ordres, alors pour vous aider dans ce cas, nous devons connaître votre algorithme.


J'avais peur de cette question. Le système est assez compliqué et difficile à décrire en 2 mots. Je ne veux pas non plus poster le code car il y a des milliers de lignes de code et personne ne les comprendra ou ne s'en souciera...

Je pensais qu'il existait des méthodes communes et flexibles pour mettre en œuvre l'identification des commandes ... Le numéro magique sert essentiellement à cela, mais il n'est pas possible de l'éditer pour se souvenir que la commande a déjà été faite telle ou telle ...

Peut-être est-il encore possible d'éditer un nombre magique ?

 
webgreck:


Comment contrôlez-vous la date ? Elle ne change pas. Regardez la capture d'écran.

comment cela ne change pas ? votre capture d'écran montre le 13 janvier, à 00:00 du 14ème swap - swap ouvert
 
webgreck:


Oui, c'est la question que je redoutais) car l'algorithme n'est pas simple... le système est assez complexe et ne peut être décrit en 2 mots. Et mettre le code n'a pas non plus de sens car il y a des milliers de lignes de code et personne ne va comprendre et s'y plonger....

J'ai pensé qu'il existait des astuces flexibles communes pour mettre en œuvre l'identification des ordres ... Nous disposons d'un numéro magique à cet effet, mais nous ne pouvons pas le modifier pour nous souvenir de ce qui a déjà été fait avec cet ordre ...

Peut-être est-il possible de modifier le numéro magique d'une commande ?


Et vous convertissez le temps d'ouverture en int - là vous avez deux magies pour une position. Si vous n'avez pas réglé la parité, il n'y a que la magie. Si vous avez déjà fixé la parité, la variable responsable de la présence de la parité fixée sera égale à l'heure d'ouverture de la position, qui est dénotée par int et la position aura un numéro magique... :)
Danser à partir de là...
 

Salut !

Je ne comprends pas pourquoi les ordres ouverts ne sont pas modifiés, la condition de modification est un profit supérieur à 5 pips.

//+------------------------------------------------------------------+
|| news trade.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp.
#lien de propriété "http://www.metaquotes.net"


extern bool In_BUYSTOP=true ;
extern intProfit_buy=100 ;
extern int StopLoss_buy=5 ;
extern double Lots_buy=0.01 ;
//+------------------------------------------------------------------+
extern bool In_SELLSTOP =true ;
externe interne TakeProfit_sell=100 ;
extern int StopLoss_sell =5 ;
extern double Lots_sell =0.01 ;
extern int LevelProfit = 25 ; // - Niveau de profit en points, qu'il faut atteindre pour transférer son stop au niveau du Breakeven.
extern int LevelWLoss = 1 ; // - Niveau de seuil de rentabilité en points, vers lequel la position d'arrêt sera déplacée lorsque son profit aura atteint le niveau de profit en points.

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----
int profitbuy=((Bid - OrderOpenPrice())/Point) ; // BUY
int profitsell=((OrderOpenPrice()- Ask)/Point) ; // VENTE
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
//----
{
int ticket ;
si (Bid >iHigh(NULL,PERIOD_D1,1))
{
si(OrdersTotal() < 1)
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots_sell,iHigh(NULL,PERIOD_D1,1),3,iHigh(NULL,PERIOD_D1,1)+StopLoss_sell*Point,iHigh(NULL,PERIOD_D1,1)-TakeProfit_sell*Point,Hour() == 21 && Minute() == 59) ;
si(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==true)
{
int profitsell=((OrderOpenPrice()- Ask)/Point) ;
si (bénéfices>5)
ticket=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,Blue) ;
retour(0) ;
}
}
si (Ask <iLow(NULL,PERIOD_D1,1))
{
si(OrdersTotal() < 1)
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots_buy,iLow(NULL,PERIOD_D1,1),3,iLow(NULL,PERIOD_D1,1)-StopLoss_buy*Point,iLow(NULL,PERIOD_D1,1)+TakeProfit_buy*Point,Hour() == 21 && Minute() == 59) ;
si(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==true)
{
int profitbuy=((Bid - OrderOpenPrice())/Point) ;
si (profitbuy>5)
int stopmodify=OrderOpenPrice() ;
OrderModify(OrderTicket(),OrderOpenPrice(),stopmodify,OrderTakeProfit(),0,Blue) ;
retour(0) ;
}
}
//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
retour(0) ;
}
//+------------------------------------------------------------------+
Raison: