La fonction ExistPositions().
Conçu pour vérifier les achats ou les ventes en cours. Similaire à la fonction ExistOrders. Par défaut, il vérifie toutes les positions : actuelles et autres instruments. Vous pouvez affiner la sélection à l'aide d'une combinaison de filtres - paramètres de fonction :
- sy - Impose une restriction sur le nom de l'instrument. Le paramètre par défaut est "" - aucune restriction, c'est-à-dire n'importe quel instrument. Si vous passez NULL, la sélection de la position sera limitée à l'instrument actuel.
- op - impose une restriction sur le type de position (Achat/Vente). Par défaut, il n'y a pas de contrainte, c'est-à-dire que tout type de position est vérifié. Les valeurs valides pour ce paramètre sont -1, OP_BUY et OP_SELL.
- mn - Applique une restriction sur le numéro d'identification ("magique") de la position. Par défaut, il n'y a pas de contrainte, c'est-à-dire que la position avec n'importe quel numéro magique est vérifiée.
- ot - Applique une restriction sur l'heure d'ouverture du poste. Il est vérifié si la position sera ouverte plus tard que la valeur de ce paramètre. Par défaut, il n'y a pas de contrainte, c'est-à-dire que la position avec n'importe quel temps ouvert est vérifiée.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 06.03.2008 | //| Описание : Возвращает флаг существования позиций | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //| ot - время открытия ( 0 - любое время открытия) | //+----------------------------------------------------------------------------+ bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) { int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (ot<=OrderOpenTime()) return(True); } } } } } } return(False); }
Fonction OpenPosition() pour le testeur.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 13.06.2007 | //| Описание : Открытие позиции. Версия функции для тестов на истории. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - текущий символ) | //| op - операция | //| ll - лот | //| sl - уровень стоп | //| tp - уровень тейк | //| mn - MagicNumber | //+----------------------------------------------------------------------------+ void OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int mn=0) { color clOpen; double pp; int err, ticket; if (sy=="") sy=Symbol(); if (op==OP_BUY) { pp=MarketInfo(sy, MODE_ASK); clOpen=clOpenBuy; } else { pp=MarketInfo(sy, MODE_BID); clOpen=clOpenSell; } ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, "", mn, 0, clOpen); if (ticket<0) { err=GetLastError(); Print("Error(",err,") open ",GetNameOP(op),": ",ErrorDescription(err)); Print("Ask=",Ask," Bid=",Bid," sy=",sy," ll=",ll, " pp=",pp," sl=",sl," tp=",tp," mn=",mn); } }
Fonction OpenPosition() en ligne.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 21.03.2008 | //| Описание : Открывает позицию и возвращает её тикет. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL или "" - текущий символ) | //| op - операция | //| ll - лот | //| sl - уровень стоп | //| tp - уровень тейк | //| mn - MagicNumber | //+----------------------------------------------------------------------------+ int OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int mn=0) { color clOpen; datetime ot; double pp, pa, pb; int dg, err, it, ticket=0; string lsComm=WindowExpertName()+" "+GetNameTF(Period()); if (sy=="" || sy=="0") sy=Symbol(); if (op==OP_BUY) clOpen=clOpenBuy; else clOpen=clOpenSell; for (it=1; it<=NumberOfTry; it++) { if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) { Print("OpenPosition(): Остановка работы функции"); break; } while (!IsTradeAllowed()) Sleep(5000); RefreshRates(); dg=MarketInfo(sy, MODE_DIGITS); pa=MarketInfo(sy, MODE_ASK); pb=MarketInfo(sy, MODE_BID); if (op==OP_BUY) pp=pa; else pp=pb; pp=NormalizeDouble(pp, dg); ot=TimeCurrent(); ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, lsComm, mn, 0, clOpen); if (ticket>0) { if (UseSound) PlaySound(NameFileSound); break; } else { err=GetLastError(); if (pa==0 && pb==0) Message("Проверьте в Обзоре рынка наличие символа "+sy); // Вывод сообщения об ошибке Print("Error(",err,") opening position: ",ErrorDescription(err),", try ",it); Print("Ask=",pa," Bid=",pb," sy=",sy," ll=",ll," op=",GetNameOP(op), " pp=",pp," sl=",sl," tp=",tp," mn=",mn); // Блокировка работы советника if (err==2 || err==64 || err==65 || err==133) { gbDisabled=True; break; } // Длительная пауза if (err==4 || err==131 || err==132) { Sleep(1000*300); break; } if (err==128 || err==142 || err==143) { Sleep(1000*66.666); if (ExistPositions(sy, op, mn, ot)) { if (UseSound) PlaySound(NameFileSound); break; } } if (err==140 || err==148 || err==4110 || err==4111) break; if (err==141) Sleep(1000*100); if (err==145) Sleep(1000*17); if (err==146) while (IsTradeContextBusy()) Sleep(1000*11); if (err!=135) Sleep(1000*7.7); } } return(ticket); }
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 01.09.2005 | //| Описание : Вывод сообщения в коммент и в журнал | //+----------------------------------------------------------------------------+ //| Параметры: | //| m - текст сообщения | //+----------------------------------------------------------------------------+ void Message(string m) { Comment(m); if (StringLen(m)>0) Print(m); }
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 01.09.2005 | //| Описание : Возвращает наименование таймфрейма | //+----------------------------------------------------------------------------+ //| Параметры: | //| TimeFrame - таймфрейм (количество секунд) (0 - текущий ТФ) | //+----------------------------------------------------------------------------+ string GetNameTF(int TimeFrame=0) { if (TimeFrame==0) TimeFrame=Period(); switch (TimeFrame) { case PERIOD_M1: return("M1"); case PERIOD_M5: return("M5"); case PERIOD_M15: return("M15"); case PERIOD_M30: return("M30"); case PERIOD_H1: return("H1"); case PERIOD_H4: return("H4"); case PERIOD_D1: return("Daily"); case PERIOD_W1: return("Weekly"); case PERIOD_MN1: return("Monthly"); default: return("UnknownPeriod"); } }
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 01.09.2005 | //| Описание : Возвращает наименование торговой операции | //+----------------------------------------------------------------------------+ //| Параметры: | //| op - идентификатор торговой операции | //+----------------------------------------------------------------------------+ string GetNameOP(int op) { switch (op) { case OP_BUY : return("Buy"); case OP_SELL : return("Sell"); case OP_BUYLIMIT : return("Buy Limit"); case OP_SELLLIMIT: return("Sell Limit"); case OP_BUYSTOP : return("Buy Stop"); case OP_SELLSTOP : return("Sell Stop"); default : return("Unknown Operation"); } }
Fonction ModifyOrder().
La fonction ModifyOrder est conçue pour modifier un ou plusieurs niveaux de prix d'une commande présélectionnée. 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 - цвет значка модификации | //+----------------------------------------------------------------------------+ void ModifyOrder(double pp=-1, double sl=0, double tp=0, color cl=CLR_NONE) { bool fm; double op, pa, pb, os, ot; int dg=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); } } } }
Fonction DeleteOrders(). Version pour testeurs.
La fonction DeleteOrders() est destinée à supprimer les ordres en attente BuyLimit, BuyStop, SellLimit et SellStop. La fonction DeleteOrders() est universelle, c'est-à-dire qu'elle peut être utilisée pour supprimer tous les ordres en attente présents, ainsi que les ordres spécifiques qui répondent aux conditions de sélection définies par les paramètres de la fonction :
sy - Nom de l'instrument. Étant donné que seul le symbole actuel peut être négocié dans le testeur de stratégie, ce paramètre n'est pas pertinent pour la version du testeur de stratégie et est uniquement requis pour la compatibilité avec la version en ligne de cette fonction. Il est préférable d'utiliser les valeurs "" ou NULL dans le testeur. La valeur par défaut "" signifie n'importe quel symbole.
op - Type d'opération commerciale, type d'ordre en attente. L'une des cinq valeurs suivantes est possible : -1, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT ou OP_SELLSTOP. La valeur par défaut de -1 signifie un ordre quelconque.
mn - MagicNumber, numéro d'identification d'un ordre en attente. La valeur par défaut -1 signifie n'importe quel MagicNumber.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 13.06.2007 | //| Описание : Удаление ордеров. Версия функции для тестов на истории. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL - текущий символ) | //| op - операция ( -1 - любой ордер) | //| mn - MagicNumber ( -1 - любой магик) | //+----------------------------------------------------------------------------+ void DeleteOrders(string sy="", int op=-1, int mn=-1) { int i, k=OrdersTotal(), ot; if (sy=="" || sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { ot=OrderType(); if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) { if (OrderSymbol()==sy && (op<0 || ot==op)) { if (mn<0 || OrderMagicNumber()==mn) { OrderDelete(OrderTicket(), clDelete); } } } } } }
Fonction DeleteOrders(). Version en ligne.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 28.11.2006 | //| Описание : Удаление ордеров | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ( "" - любой символ, | //| NULL - текущий символ) | //| op - операция ( -1 - любой ордер) | //| mn - MagicNumber ( -1 - любой магик) | //+----------------------------------------------------------------------------+ void DeleteOrders(string sy="", int op=-1, int mn=-1) { bool fd; int err, i, it, k=OrdersTotal(), ot; if (sy=="0") sy=Symbol(); for (i=k-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { ot=OrderType(); if (ot>1 && ot<6) { if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) { if (mn<0 || OrderMagicNumber()==mn) { for (it=1; it<=NumberOfTry; it++) { if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break; while (!IsTradeAllowed()) Sleep(5000); fd=OrderDelete(OrderTicket(), clDelete); if (fd) { if (UseSound) PlaySound(NameFileSound); break; } else { err=GetLastError(); Print("Error(",err,") delete order ",GetNameOP(ot), ": ",ErrorDescription(err),", try ",it); Sleep(1000*5); } } } } } } } }
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 07.10.2006 | //| Описание : Поиск ближайшего фрактала. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| mode - тип фрактала (MODE_LOWER|MODE_UPPER) | //+----------------------------------------------------------------------------+ double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) { if (sy=="" || sy=="0") sy=Symbol(); double f=0; int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2; for (s=2; s<100; s++) { f=iFractals(sy, tf, mode, s); if (f!=0) return(NormalizeDouble(f, d)); } Print("FindNearFractal(): Фрактал не найден"); return(0); }
Fonction ExistOrdersByLot().
Renvoie un indicateur de l'existence d'un ordre avec la taille de lot spécifiée. Vrai - l'ordre existe (défini), Faux - l'ordre n'existe pas (non défini). Vous pouvez limiter la liste des ordres à vérifier à l'aide des paramètres de la fonction :
- sy - Nom de l'instrument. Si vous définissez ce paramètre, la fonction ne vérifiera que les ordres de l'instrument spécifié. NULL signifie l'instrument actuel, et "" (par défaut) signifie n'importe quel instrument.
- op - Opération, type d'ordre en attente. Valeurs valides : OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. La valeur par défaut de -1 indique tout type de commande.
- mn - Identifiant de l'ordre (MagicNumber). La valeur par défaut de -1 signifie n'importe quel MagicNumber.
- lo - Taille d'un lot avec une précision de deux décimales. La valeur par défaut est 0 - toute taille de lot.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 28.11.2006 | //| Описание : Возвращает флаг существования ордера по размеру лота. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любой ордер) | //| mn - MagicNumber (-1 - любой магик) | //| lo - лот ( 0 - любой лот) | //+----------------------------------------------------------------------------+ bool ExistOrdersByLot(string sy="", int op=-1, int mn=-1, double lo=0) { int i, k=OrdersTotal(), ot; lo=NormalizeDouble(lo, 2); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { ot=OrderType(); if (ot>1 && ot<6) { if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) { if (mn<0 || OrderMagicNumber()==mn) { if (lo<=0 || NormalizeDouble(OrderLots(), 2)==lo) return(True); } } } } } return(False); }
Fonction GetLotLastOrder().
Renvoie la taille du lot du dernier ordre passé ou -1. Vous pouvez limiter la liste des ordres à vérifier à l'aide des paramètres de la fonction :
- sy - Nom de l'instrument. Si ce paramètre est donné, la fonction ne vérifiera que les ordres de l'instrument spécifié. NULL signifie l'instrument actuel, et "" (par défaut) signifie n'importe quel instrument.
- op - Opération, type d'ordre en attente. Valeurs valides : OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. La valeur par défaut de -1 signifie un ordre quelconque.
- mn - Identifiant de l'ordre (MagicNumber). La valeur par défaut -1 signifie n'importe quel MagicNumber.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 28.11.2006 | //| Описание : Возвращает размер лота последнего выставленного ордера или -1 | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ double GetLotLastOrder(string sy="", int op=-1, int mn=-1) { datetime o; double l=-1; int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()>1 && OrderType()<6) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (o<OrderOpenTime()) { o=OrderOpenTime(); l=OrderLots(); } } } } } } } return(l); }
Fonction GetOrderOpenPrice().
Renvoie le prix de fixation du dernier ordre ouvert ou 0. Vous pouvez limiter la liste des ordres à vérifier avec les paramètres de la fonction :
- sy - Nom de l'instrument. Si ce paramètre est donné, la fonction ne vérifiera que les ordres de l'instrument spécifié. NULL signifie l'instrument actuel, et "" (par défaut) signifie n'importe quel instrument.
- op - Opération, type d'ordre en attente. Valeurs valides : OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. La valeur par défaut de -1 indique un ordre quelconque.
- mn - Identifiant de l'ordre (MagicNumber). La valeur par défaut -1 signifie n'importe quel MagicNumber.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 28.11.2006 | //| Описание : Возвращает цену установки последнего ордера или 0. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ double GetOrderOpenPrice(string sy="", int op=-1, int mn=-1) { datetime t; double r=0; int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()>1 && OrderType()<6) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderOpenTime()) { t=OrderOpenTime(); r=OrderOpenPrice(); } } } } } } } return(r); }
La fonction IndexByTicket().
Renvoie l'index (numéro ordinal dans la liste générale des ordres fixés ou des positions ouvertes) de l'ordre ou de la position sur le ticket. Si IndexByTicket() ne trouve pas d'ordre ou de position avec le ticket requis, il renvoie -1. Nous pouvons limiter la liste des ordres ou des positions à vérifier à l'aide des paramètres de la fonction :
- sy - Nom de l'instrument. Si vous spécifiez ce paramètre, la fonction ne vérifiera que les ordres et les positions de l'instrument spécifié. NULL signifie l'instrument actuel, et "" (par défaut) signifie n'importe quel instrument.
- op - Opération commerciale, type d'ordre ou de position en attente. Valeurs valides : OP_BUY, OP_BUYLIMIT, OP_BUYSTOP, OP_SELL, OP_SELLLIMIT, OP_SELLSTOP ou -1. La valeur par défaut de -1 indique un ordre ou une position quelconque.
- mn - Identifiant d'un ordre ou d'une position (MagicNumber). La valeur par défaut -1 signifie n'importe quel MagicNumber.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 20.04.2007 | //| Описание : Возвращает индекс ордера или позиции по тикету | //+----------------------------------------------------------------------------+ //| Параметры: | //| ti - тикет ордера, позиции | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int IndexByTicket(int ti, string sy="", int op=-1, int mn=-1) { int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) { if ((mn<0 || OrderMagicNumber()==mn) && OrderTicket()==ti) return(i); } } } return(-1); }
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Toutes les fonctions sont tirées de ce fil - h ttp://forum.mql4.com/en/11287 , le fil contient une description détaillée de chaque fonction et des exemples de leur utilisation
Page 2Teneur
NumberOfOrders - Renvoie le nombre de commandes.
ClosePosBySelect - Ferme une position présélectionnée.
ClosePosBySizeProfitInCurrency - Fermez les positions qui ont un profit dans la devise de dépôt d'une certaine valeur
ClosePosBySizeLossInCurrency - Fermeture des positions dont la perte dans la devise de dépôt a dépassé une certaine valeur
ClosePositions - Fermer des positions au prix du marché
ClosePosFirstProfit - Clôture des positions au prix du marché d'abord rentable
ClosePosWithMaxProfitInCurrency - Fermez une position avec le profit positif maximum dans la devise du dépôt
DistMarketAndPos- Renvoie la distance en points entre le marché et la position la plus proche
ExistOPNearMarket - Renvoie le drapeau de l'existence d'une position ou d'un ordre proche du marché
ExistPosByPrice - Renvoie le drapeau de l'existence de positions au prix d'ouverture
GetAmountLotFromOpenPos - Renvoie le nombre de lots de positions ouvertes
Page #3
GetIndexByTicket - Renvoie l'index de la commande ou de la position par ticket.
Corrélation - Renvoie la corrélation de deux séries.
GetIndexLastPos - Renvoie l'index de la dernière position ouverte ou -1
GetLotLastPos - Renvoie la taille du lot de la dernière position ouverte ou -1
GetMaxLotFromOpenPos - Renvoie la taille maximale du lot à partir des positions ouvertes
GetMinLotFromOpenPos - Renvoie la taille minimale du lot à partir des positions ouvertes
NumberOfPositions - Renvoie le nombre de positions.
GetProfitFromDateInCurrency - Renvoie le profit total dans la devise de dépôt des positions clôturées depuis une certaine date
GetProfitOpenPosInCurrency - Renvoie le profit total des positions ouvertes dans la devise du dépôt
GetProfitOpenPosInPoint - Renvoie le profit total des positions ouvertes en points
GetTicketLastPos - Renvoie le ticket de la dernière position ouverte ou -1
Page#4
GetTypeLastClosePos - Renvoie le type de la dernière position fermée ou -1
GetTypeLastOpenPos - Renvoie le type de la dernière position ouverte ou -1
isCloseLastPosByStop - Renvoie le drapeau pour fermer la dernière position par stop
isCloseLastPosByTake - Renvoie le drapeau pour fermer la dernière position par prise.
isLossLastPos - Renvoie l'indicateur de perte de la dernière position.
isTradeToDay - Renvoie le drapeau commercial pour aujourd'hui
NumberOfBarCloseLastPos - Renvoie le numéro de la barre de fermeture de la dernière position ou -1.
NumberOfBarOpenLastPos - Renvoie le numéro de la barre ouverte de la dernière position ou -1.
NumberOfLossPosToday - Renvoie le nombre de positions perdantes clôturées aujourd'hui.
PriceCloseLastPos - Renvoie le prix de clôture de la dernière position fermée.
Page #5
PriceOpenLastPos - Renvoie le prix d'ouverture de la dernière position ouverte.
PriceOpenLastClosePos - Renvoie le prix d'ouverture de la dernière position fermée.
PriceOpenNearPos - Renvoie le prix d'ouverture de la position la plus proche.
TicketNearPos - Renvoie le ticket de la position la plus proche du marché au prix d'ouverture.
TypeNearPos - Renvoie le type de position la plus proche du marché, ou -1.
TimeOpenLastPos - Renvoie l'heure d'ouverture de la dernière position ouverte.
BubbleSort - Effectue un tri à bulles sur les éléments d'un tableau.
BarsBetweenLastFractals - Renvoie le nombre de barres entre les deux dernières fractales.
SecondsAfterCloseLastPos - Renvoie le nombre de secondes après la fermeture de la dernière position.
SecondsAfterOpenLastPos - Renvoie le nombre de secondes après l'ouverture de la dernière position.
DeleteOppositeOrders - Supprimer la position de commande opposée
ArraySearchDouble - Recherche un élément dans un tableau par valeur et renvoie l'index de l'élément trouvé, ou -1
ArraySearchInt - Recherche un élément dans un tableau par valeur et renvoie l'index de l'élément trouvé, ou -1.
ArraySearchString - Recherche un élément de tableau par valeur et renvoie l'index de l'élément trouvé, ou -1
GetLotLastClosePos - Renvoie la taille du lot de la dernière position fermée ou -1
ArrayMax - Renvoie la valeur de l'élément maximum dans un tableau.
Page #6
ArrayMin - Renvoie la valeur de l'élément minimum dans un tableau
GetExtremumZZBar - Renvoie le numéro de la barre extrême ZigZag par son numéro.
ArrayAvg - Renvoie la moyenne arithmétique des éléments du tableau.
ArrayAvGeom - Renvoie la moyenne géométrique des éléments du tableau.
SetHLine - Définissez l'objet OBJ_HLINE sur une ligne horizontale
SetVLine - Définissez l'objet OBJ_VLINE sur une ligne verticale
SetTLine - Définit l'objet OBJ_TREND sur la ligne de tendance
SetTLineByAngle - Définit l'objet OBJ_TRENDBYANGLE de la ligne de tendance par angle
SetArrow - Définition de l'icône sur le graphique, l'objet OBJ_ARROW.
SetLabel - Définissez une étiquette de texte, un objet OBJ_LABEL.
CrossPointOfLines - Calcule les coordonnées du point d'intersection de deux lignes. Chaque ligne est donnée par une paire de coordonnées de ses points.
SetRegression - Définit l'objet OBJ_REGRESSION sur le canal de régression linéaire.
EquationDirect - Équation d'une ligne droite. Calcule la valeur Y pour X au point d'intersection avec la ligne.
GetArrowInterval - Renvoie l'intervalle de définition des pointeurs de signal
GetArrowInterval - Renvoie l'intervalle de définition des pointeurs de signal
FindNearFractal - Trouver la fractale la plus proche. Renvoie le niveau de prix.
GetExtremumZZBar - Renvoie le numéro de la barre extrême ZigZag par son numéro.
GetExtremumZZPrice - Renvoie ZigZag extremum par son numéro.
GetFractalBar - Renvoie le numéro de la barre fractale par son numéro.
GetNearestDownFractal - Renvoie le niveau de prix de la fractale inférieure la plus proche
GetNearestUpFractal - Renvoie la fractale la plus proche
Page #7
CorrectTF - Corrige la période au MT4 pris en charge le plus proche.
DateBeginQuarter - Renvoie la date de début du trimestre
DateOfMonday - Renvoie la date du lundi par numéro de semaine
Fibonacci - Renvoie l'élément de la série de Fibonacci par son nombre ordinal.
GetNameMA - Renvoie le nom de la méthode MA.
GetPriceDiffInPoint - Renvoie la différence de prix en points entre deux barres.
GetTypePrice - Renvoie le nom du type de prix.
ArrayLR - Génère un tableau de valeurs de régression linéaire.
ArrayMo - Renvoie le Mode - le maximum de la courbe de densité de distribution.
ExistOrdersByPrice - Renvoie le drapeau de l'existence de commandes au prix fixé
ClosePosBySelect - Fermer une position présélectionnée
CountOrders - Calcule le nombre de commandes par type.
ModifyOrder - Modification de la commande. Version de la fonction pour les backtests.
IIFc - Renvoie l'une des deux valeurs en fonction de la condition.
IIFd - Renvoie l'une des deux valeurs en fonction de la condition.
IIFi - Renvoie l'une des deux valeurs en fonction de la condition.
IIFs - Renvoie l'une des deux valeurs en fonction de la condition.
ExistInHistoryCloseBetween - Renvoie l'indicateur d'existence dans l'historique d'une position ou d'un ordre clôturé (supprimé) entre les dates.
ExistInHistoryOpenBetween - Renvoie le drapeau d'existence dans l'historique d'une position ou d'un ordre ouvert (set) entre les dates.
ExistInHistoryToDay - Renvoie le drapeau de la présence d'un ordre ou d'une position dans l'historique pour aujourd'hui
TakeProfitLastPos - Renvoie le prix TakeProfit de la dernière position ouverte ou -1.
Page #8
TakeProfitLastClosePos - Renvoie le prix TakeProfit de la dernière position fermée ou -1.
MovingInWL - Déplacement du niveau d'arrêt vers le seuil de rentabilité
SimpleTrailing - Suivi des positions avec un simple chalut
ArrayZ - Renvoie le score Z d'une série de nombres.
ArrayDeleteInt - Supprime l'élément de tableau à l'index donné. Renvoie la taille du nouveau tableau, ou -1 si rien n'a pu être supprimé.
ArrayDeleteDouble - Supprime l'élément de tableau à l'index donné. Renvoie la taille du nouveau tableau, ou -1 si rien n'a pu être supprimé.
ArrayDeleteString - Supprime l'élément de tableau à l'index donné. Renvoie la taille du nouveau tableau, ou -1, si rien ne pouvait être enlevé.
ArrayInsertDouble - Insère un élément de tableau à l'index donné. Renvoie la taille du nouveau tableau.
BubbleSort2 - Effectue un tri à bulles sur les éléments d'un tableau à deux dimensions.
GetTypeLastDeleted - Renvoie le type de la dernière commande supprimée ou -1
iBarLargest - Renvoie l'index de la plus grande barre, ou -1.
iBarOfDayCalc - Renvoie le nombre de barres calculé depuis le début de la journée. La numérotation des barres commence à partir de 1 (un)
iBarOfDayReal - Renvoie le nombre réel de la barre depuis le début de la journée.
NameDayOfWeek - Renvoie le nom du jour de la semaine
NormalizeLot - Renvoie la valeur normalisée du lot négocié.
NormalizePrice - Renvoie la valeur du prix normalisée à la taille du tick.
WeekOfMonth - Renvoie le numéro de semaine du mois en fonction de la date
ClosePosBySortLots - Fermez les positions dans l'ordre de tri par taille de lot.
AddLeadingZero - Ajoute suffisamment de zéros non significatifs "0" à la chaîne S pour que la chaîne S soit égale à la longueur K.
toTime - Convertit deux/trois entiers en une chaîne au format horaire
Page #9
StringLower - Renvoie une chaîne en minuscule
StringUpper - Renvoie une chaîne en MAJUSCULES
StringToArrayDouble - Transférer des nombres réels d'une chaîne à un tableau
StringToArrayInt - Transférer des valeurs entières d'une chaîne à un tableau
StrSplit - Fractionner une chaîne en un tableau d'éléments
StrTran - Remplacement de sous-chaîne
MovingInWL - Déplacement du niveau d'arrêt vers le seuil de rentabilité
isTradeTimeString - Renvoie l'indicateur d'activation de l'échange de temps.
isTradeTimeInt - Renvoie l'indicateur d'autorisation d'échange de temps.
En outre:
Toutes les fonctions dans une seule archive.
Toutes les fonctions se présentent sous la forme de bibliothèques liées.
Fonction ExisteCommandes().
Renvoie l'indicateur d'existence de la commande. Il répondra à la question de savoir si la commande est définie ou non. Grâce à cette fonction, vous pouvez demander n'importe quelle commande, ainsi qu'une commande plus spécifique. Le filtre de requête est configuré à l'aide des paramètres de fonction :