Eh bien, puisqu'il n'y a pas de questions, continuons...
Fonction ModifyOrder().
La fonction ModifyOrder est conçue pour modifier un ou plusieurs niveaux de prix d'un ordre présélectionné. Par ordre en suspens, on entend ici un ordre limite ou stop, ainsi qu'un ordre d'achat ou de vente sur le marché, c'est-à-dire une position. La fonction ModifyOrder permet de modifier les deux niveaux de prix StopLoss et TakeProfit de la position, tandis que pour l'ordre en suspens, le prix de fixation OpenPrice peut également être modifié. Les niveaux de prix modifiés sont transmis à la fonction ModifyOrder en tant que paramètres. Si l'un des paramètres est négatif, le niveau de prix correspondant ne sera pas modifié.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 28.11.2006 |//| Описание : Модификация одного предварительно выбранного ордера. |//+----------------------------------------------------------------------------+//| Параметры: |//| pp - цена установки ордера |//| sl - ценовой уровень стопа |//| tp - ценовой уровень тейка |//| cl - цвет значка модификации |//+----------------------------------------------------------------------------+voidModifyOrder(doublepp=-1, doublesl=0, doubletp=0, colorcl=CLR_NONE){boolfm;
doubleop, pa, pb, os, ot;
intdg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;
if(pp<=0)pp=OrderOpenPrice();
if(sl<0)sl=OrderStopLoss();
if(tp<0)tp=OrderTakeProfit();
pp=NormalizeDouble(pp, dg);
sl=NormalizeDouble(sl, dg);
tp=NormalizeDouble(tp, dg);
op=NormalizeDouble(OrderOpenPrice() , dg);
os=NormalizeDouble(OrderStopLoss() , dg);
ot=NormalizeDouble(OrderTakeProfit(), dg);
if(pp!=op || sl!=os || tp!=ot){for(it=1; it<=NumberOfTry; it++){if(!IsTesting() && (!IsExpertEnabled() || IsStopped()))break;
while(!IsTradeAllowed())Sleep(5000);
RefreshRates();
fm=OrderModify(OrderTicket(), pp, sl, tp, 0, cl);
if(fm){if(UseSound)PlaySound(NameFileSound); break;
}else{er=GetLastError();
pa=MarketInfo(OrderSymbol(), MODE_ASK);
pb=MarketInfo(OrderSymbol(), MODE_BID);
Print("Error(",er,") modifying order: ",ErrorDescription(er),", try ",it);
Print("Ask=",pa," Bid=",pb," sy=",OrderSymbol(),
" op="+GetNameOP(OrderType())," pp=",pp," sl=",sl," tp=",tp);
Sleep(1000*10);
}}}}
Exemples d'utilisation de la fonction ModifyOrder().
J'ai décidé de donner les tout premiers exemples que l'on m'a déjà demandés à maintes reprises. Il s'agit de l'ouverture de positions en termes d'exécution d' ordres de marchéMarket Watch. C'est lorsque nous ne pouvons pas simultanément donner un ordre d'ouverture de position au prix du marché et y attacher un ordre en attente. Une telle ouverture sur Market Watch doit être effectuée en deux étapes : d'abord, nous ouvrons une position, puis nous y attachons un ordre en suspens, c'est-à-dire que nous fixons des niveaux de prix StopLoss et TakeProfit.
1. Acheter 0,1 lot du symbole actuel et fixer un stop de 30 points
Considéreriez-vous comme effronté de faire une petite libation, en un seul post, sur le sujet de la "Transmission à la fonction" ? Jusqu'à présent, c'est une sombre forêt logique-idéologique pour moi... (non, ce n'est pas le cas...).
kombat писал (а): Considéreriez-vous comme effronté d'avoir une petite éducation d'un poste sur le sujet de la "transmission de fonction" ?
Non, je ne le ferais pas. En ce qui concerne mes fonctions, toute question est acceptable à tout moment. Je vais essayer de répondre à toutes les questions...
kombat писал (а): Merci... Et bien sûr, il n'y a pas d'urgence... il n'y a pas d'urgence. Le marché ne nous fuira pas... :)))
En fait, je m'attendais à des questions de votre part. Des questions spécifiques, indiquant directement ce que vous devez clarifier dans le domaine de l'utilisation de mes fonctions.
Eh bien, puisqu'il n'y a pas de questions, continuons...
Fonction ModifyOrder().
La fonction ModifyOrder est conçue pour modifier un ou plusieurs niveaux de prix d'un ordre présélectionné. Par ordre en suspens, on entend ici un ordre limite ou stop, ainsi qu'un ordre d'achat ou de vente sur le marché, c'est-à-dire une position. La fonction ModifyOrder permet de modifier les deux niveaux de prix StopLoss et TakeProfit de la position, tandis que pour l'ordre en suspens, le prix de fixation OpenPrice peut également être modifié. Les niveaux de prix modifiés sont transmis à la fonction ModifyOrder en tant que paramètres. Si l'un des paramètres est négatif, le niveau de prix correspondant ne sera pas modifié.
Exemples d'utilisation de la fonction ModifyOrder().
J'ai décidé de donner les tout premiers exemples que l'on m'a déjà demandés à maintes reprises. Il s'agit de l'ouverture de positions en termes d'exécution d' ordres de marché Market Watch. C'est lorsque nous ne pouvons pas simultanément donner un ordre d'ouverture de position au prix du marché et y attacher un ordre en attente. Une telle ouverture sur Market Watch doit être effectuée en deux étapes : d'abord, nous ouvrons une position, puis nous y attachons un ordre en suspens, c'est-à-dire que nous fixons des niveaux de prix StopLoss et TakeProfit.
1. Acheter 0,1 lot du symbole actuel et fixer un stop de 30 points
2. Vendre 0,15 lot de l'instrument actuel et fixer un SL=45, TP=99
Un script de travail avec des exemples est inclus dans la remorque.Igor, avez-vous une fonction pour fermer les ordres (à la fois juste Close et CloseBy) ?
La fermeture par ordre alphabétique devrait se faire avant ModifyOrder ;-)
C'est logique... ;)
Considéreriez-vous comme effronté de faire une petite libation, en un seul post, sur le sujet de la "Transmission à la fonction" ?
Jusqu'à présent, c'est une sombre forêt logique-idéologique pour moi...
(non, ce n'est pas le cas...).
Considéreriez-vous comme effronté d'avoir une petite éducation d'un poste sur le sujet de la "transmission de fonction" ?
Merci...
Et bien sûr, il n'y a pas d'urgence... il n'y a pas d'urgence.
Le marché ne nous fuira pas... :)))
Merci...
Et bien sûr, il n'y a pas d'urgence... il n'y a pas d'urgence.
Le marché ne nous fuira pas... :)))