A função ExistPosições().
Projetado para verificar as compras ou vendas em aberto. Semelhante à função ExistOrders. Por padrão, ele verifica todas as posições: atuais e outros instrumentos. Você pode refinar a seleção com uma combinação de filtros - parâmetros de função:
- sy - Impõe uma restrição ao nome do instrumento. O parâmetro padrão é "" - sem restrições, ou seja, qualquer instrumento. Se você aprovar o NULL, a seleção de posição será limitada ao instrumento atual.
- op - coloca uma restrição no tipo de posição (Compra/Venda). Por padrão, não há nenhuma restrição, ou seja, qualquer tipo de posição é verificada. Os valores válidos para este parâmetro são -1, OP_BUY e OP_SELL.
- mn - Aplica restrição ao número de identificação ("mágico") da posição. Por padrão não há nenhuma restrição, ou seja, a posição com qualquer número mágico é verificada.
- ot - Aplica restrição no tempo de abertura de posição. É verificado se a posição será aberta mais tarde do que o valor deste parâmetro. Por padrão, não há nenhuma restrição, ou seja, a posição com qualquer tempo aberto é verificada.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. 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); }
Função OpenPosition() para o testador.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. 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); } }
Função OpenPosition() para on-line.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. 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"); } }
Função ModifyOrder().
A função ModifyOrder foi projetada para alterar um ou mais níveis de preços de um pedido pré-selecionado. Aqui uma ordem pendente é entendida como uma ordem Limit ou Stop, assim como uma ordem de Compra ou Venda no mercado, ou seja, uma posição. Usando a função ModifyOrder você pode modificar dois níveis de preço StopLoss e TakeProfit para a posição, enquanto para a ordem pendente o preço de ajuste de Preço Aberto também pode ser alterado. Os níveis de preços modificados são passados para a função ModifyOrder como parâmetros. Se qualquer um dos parâmetros for negativo, o nível de preço correspondente não será alterado.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. 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); } } } }
Função DeleteOrders(). Versão do testador.
Função DeleteOrders() destina-se a excluir pedidos pendentes BuyLimit, BuyStop, SellLimit e SellStop. A função DeleteOrders() é universal, ou seja, pode ser usada para excluir todas as ordens pendentes presentes, bem como as específicas que atendam às condições de seleção definidas pelos parâmetros da função:
sy - Nome do instrumento. Como somente o símbolo atual pode ser comercializado no Strategy Tester, este parâmetro não é relevante para a versão do Strategy Tester e só é necessário para a compatibilidade com a versão on-line desta função. É melhor usar os valores "" ou NULL no testador. O valor padrão "" significa qualquer símbolo.
op - Tipo de operação comercial, tipo de ordem pendente. Um dos cinco valores é possível: -1, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT ou OP_SELLSTOP. O valor padrão de -1 significa qualquer ordem.
mn - MagicNumber, número de identificação de uma ordem pendente. O valor padrão -1 significa qualquer 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); } } } } } }
Função DeleteOrders(). Versão on-line.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. 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); }
Função ExistOrdersByLot().
Devolve uma bandeira para a existência de um pedido com o tamanho de lote especificado. Verdadeiro - a ordem existe (conjunto), Falso - a ordem não existe (não conjunto). Você pode limitar a lista de ordens a serem verificadas usando os parâmetros da função:
- sy - Nome do instrumento. Se você definir este parâmetro, a função só verificará as ordens do instrumento especificado. NULL significa instrumento atual, e "" (por padrão) significa qualquer instrumento.
- op - Operação, tipo de ordem pendente. Valores válidos: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. O valor padrão de -1 indica qualquer tipo de pedido.
- mn - Identificador do pedido (MagicNumber). O valor padrão de -1 significa qualquer MagicNumber.
- lo - Tamanho de um lote com uma precisão de duas casas decimais. O valor padrão é 0 - qualquer tamanho de lote.
//+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. 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); }
Função GetLotLastOrder().
Devolve o tamanho do lote do último pedido colocado ou -1. Você pode limitar a lista de ordens a serem verificadas usando os parâmetros da função:
- sy - Nome do instrumento. Se este parâmetro for dado, a função somente verificará as ordens do instrumento especificado. NULL significa o instrumento atual, e "" (por padrão) significa qualquer instrumento.
- op - Operação, tipo de ordem pendente. Valores válidos: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. O valor padrão de -1 significa qualquer ordem.
- mn - Identificador do pedido (MagicNumber). O valor padrão -1 significa qualquer 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); }
Função GetOrderOpenPrice().
Retorna o preço de ajuste do último pedido aberto ou 0. Você pode limitar a lista de pedidos a serem verificados com parâmetros de função:
- sy - Nome do instrumento. Se este parâmetro for dado, a função somente verificará as ordens do instrumento especificado. NULL significa o instrumento atual, e "" (por padrão) significa qualquer instrumento.
- op - Operação, tipo de ordem pendente. Valores válidos: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. O valor padrão de -1 indica qualquer ordem.
- mn - Identificador do pedido (MagicNumber). O valor padrão -1 significa qualquer 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); }
A função IndexByTicket().
Retorna o índice (número ordinal na lista geral de ordens ou posições abertas) da ordem ou posição no bilhete. Se IndexByTicket() não puder encontrar um pedido ou posição com o bilhete requerido, ele retornará -1. Podemos limitar a lista de ordens ou posições a serem verificadas usando os parâmetros da função:
- sy - Nome do instrumento. Se você especificar este parâmetro, a função só verificará as ordens e posições do instrumento especificado. NULL significa o instrumento atual, e "" (por padrão) significa qualquer instrumento.
- op - Operação comercial, tipo de ordem ou posição pendente. Valores válidos: OP_BUY, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLL, OP_SELLLLIMIT, OP_SELLSTOP ou -1. O valor padrão de -1 indica qualquer ordem ou posição.
- mn - Identificador de uma ordem ou posição (MagicNumber). O valor padrão -1 significa qualquer 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); }
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Todas as funções são retiradas deste tópico - h ttp://forum.mql4.com/ru/11287 , o tópico contém uma descrição detalhada de cada função e exemplos de seu uso
Página 2Contente
NumberOfOrders - Retorna o número de pedidos.
ClosePosBySelect - Fecha uma posição pré-selecionada.
ClosePosBySizeProfitInCurrency - Fecha as posições que têm lucro na moeda de depósito de um determinado valor
ClosePosBySizeLossInCurrency - Fechando as posições cuja perda na moeda do depósito excedeu um determinado valor
ClosePositions - Fechar posições a preço de mercado
ClosePosFirstProfit - Fechar posições ao preço de mercado primeiro lucrativo
ClosePosWithMaxProfitInCurrency - Feche uma posição com o lucro positivo máximo na moeda de depósito
DistMarketAndPos- Retorna a distância em pontos entre o mercado e a posição mais próxima
ExistOPNearMarket - Retorna o sinalizador para a existência de uma posição ou ordem próxima ao mercado
ExistPosByPrice - Retorna o sinalizador para a existência de posições no preço de abertura
GetAmountLotFromOpenPos - Retorna a quantidade de lotes de posições abertas
Página #3
GetIndexByTicket - Retorna o índice da ordem ou posição por ticket.
Correlação - Retorna a correlação de duas séries.
GetIndexLastPos - Retorna o índice da última posição aberta ou -1
GetLotLastPos - Retorna o tamanho do lote da última posição aberta ou -1
GetMaxLotFromOpenPos - Retorna o tamanho máximo do lote de posições abertas
GetMinLotFromOpenPos - Retorna o tamanho mínimo do lote das posições abertas
NumberOfPositions - Retorna o número de posições.
GetProfitFromDateInCurrency - Retorna o lucro total na moeda de depósito das posições fechadas desde uma determinada data
GetProfitOpenPosInCurrency - Retorna o lucro total das posições abertas na moeda de depósito
GetProfitOpenPosInPoint - Retorna o lucro total das posições abertas em pontos
GetTicketLastPos - Retorna o ticket da última posição aberta ou -1
Página#4
GetTypeLastClosePos - Retorna o tipo da última posição fechada ou -1
GetTypeLastOpenPos - Retorna o tipo da última posição aberta ou -1
isCloseLastPosByStop - Retorna o sinalizador para fechar a última posição por stop
isCloseLastPosByTake - Retorna o sinalizador para fechar a última posição por take.
isLossLastPos - Retorna o sinalizador de perda da última posição.
isTradeToDay - Retorna o sinalizador de negociação para hoje
NumberOfBarCloseLastPos - Retorna o número da barra de fechamento da última posição ou -1.
NumberOfBarOpenLastPos - Retorna o número da última posição da barra aberta ou -1.
NumberOfLossPosToday - Retorna o número de posições perdedoras fechadas hoje.
PriceCloseLastPos - Retorna o preço de fechamento da última posição fechada.
Página #5
PriceOpenLastPos - Retorna o preço de abertura da última posição aberta.
PriceOpenLastClosePos - Retorna o preço de abertura da última posição fechada.
PriceOpenNearPos - Retorna o preço de abertura da posição mais próxima.
TicketNearPos - Devolve o ticket da posição mais próxima do mercado ao preço de abertura.
TypeNearPos - Retorna o tipo de posição mais próxima do mercado, ou -1.
TimeOpenLastPos - Retorna o horário de abertura da última posição aberta.
BubbleSort - Executa uma classificação de bolhas nos elementos de uma matriz.
BarsBetweenLastFractals - Retorna o número de barras entre os dois últimos fractais.
SecondsAfterCloseLastPos - Retorna o número de segundos após o fechamento da última posição.
SecondsAfterOpenLastPos - Retorna o número de segundos após a última posição ser aberta.
DeleteOppositeOrders - Excluir posição de ordem oposta
ArraySearchDouble - Procura um elemento em uma matriz por valor e retorna o índice do elemento encontrado, ou -1
ArraySearchInt - Procura um elemento em uma matriz por valor e retorna o índice do elemento encontrado, ou -1.
ArraySearchString - Procura um elemento de array por valor e retorna o índice do elemento encontrado, ou -1
GetLotLastClosePos - Retorna o tamanho do lote da última posição fechada ou -1
ArrayMax - Retorna o valor do elemento máximo em uma matriz.
Página #6
ArrayMin - Retorna o valor do elemento mínimo em uma matriz
GetExtremumZZBar - Retorna o número da barra extrema do ZigZag pelo seu número.
ArrayAvg - Retorna a média aritmética dos elementos da matriz.
ArrayAvGeom - Retorna a média geométrica dos elementos do array.
SetHLine - Defina o objeto OBJ_HLINE para uma linha horizontal
SetVLine - Defina o objeto OBJ_VLINE para uma linha vertical
SetTLine - Defina o objeto OBJ_TREND para a linha de tendência
SetTLineByAngle - Defina o objeto OBJ_TRENDBYANGLE da linha de tendência por ângulo
SetArrow - Configurando o ícone no gráfico, o objeto OBJ_ARROW.
SetLabel - Defina um rótulo de texto, um objeto OBJ_LABEL.
CrossPointOfLines - Calcula as coordenadas do ponto de interseção de duas linhas, cada linha é dada por um par de coordenadas de seus pontos.
SetRegression - Define o objeto OBJ_REGRESSION para o canal de regressão linear.
EquationDirect - Equação de uma linha reta. Calcula o valor Y para X no ponto de interseção com a linha.
GetArrowInterval - Retorna o intervalo para definir ponteiros de sinal
GetArrowInterval - Retorna o intervalo para definir ponteiros de sinal
FindNearFractal - Encontrando o fractal mais próximo. Retorna o nível de preço.
GetExtremumZZBar - Retorna o número da barra extrema do ZigZag pelo seu número.
GetExtremumZZPrice - Retorna o extremo do ZigZag pelo seu número.
GetFractalBar - Retorna o número da barra fractal por seu número.
GetNearestDownFractal - Retorna o nível de preço do fractal mais próximo
GetNearestUpFractal - Retorna o fractal mais próximo
Página #7
CorrectTF - Corrige o prazo para o MT4 suportado mais próximo.
DateBeginQuarter - Retorna a data de início do trimestre
DateOfMonday - Retorna a data de segunda-feira pelo número da semana
Fibonacci - Retorna o elemento da série de Fibonacci pelo seu número ordinal.
GetNameMA - Retorna o nome do método MA.
GetPriceDiffInPoint - Retorna a diferença de preço em pontos entre duas barras.
GetTypePrice - Retorna o nome do tipo de preço.
ArrayLR - Gera uma matriz de valores de regressão linear.
ArrayMo - Retorna o Modo - o máximo da curva de densidade de distribuição.
ExistOrdersByPrice - Retorna o sinalizador para a existência de pedidos ao preço definido
ClosePosBySelect - Fecha uma posição pré-selecionada
CountOrders - Calcula o número de pedidos por tipo.
ModifyOrder - Modificação do pedido. Versão da função para backtests.
IIFc - Retorna um de dois valores dependendo da condição.
IIFd - Retorna um de dois valores dependendo da condição.
IIFi - Retorna um dos dois valores dependendo da condição.
IIFs - Retorna um de dois valores dependendo da condição.
ExistInHistoryCloseBetween - Retorna o sinalizador de existência no histórico de uma posição ou ordem fechada (excluída) entre as datas.
ExistInHistoryOpenBetween - Retorna o sinalizador de existência no histórico de uma posição ou ordem aberta (definida) entre datas.
ExistInHistoryToDay - Retorna o sinalizador da presença de uma ordem ou posição no histórico para hoje
TakeProfitLastPos - Retorna o preço TakeProfit da última posição aberta ou -1.
Página #8
TakeProfitLastClosePos - Retorna o preço TakeProfit da última posição fechada ou -1.
MovingInWL - Movendo o nível de parada para o ponto de equilíbrio
SimpleTrailing - Rastreamento de posições com uma simples arrasto
ArrayZ - Retorna o Z-score de uma série numérica.
ArrayDeleteInt - Exclui o elemento da matriz no índice fornecido. Retorna o tamanho da nova matriz ou -1 se nada puder ser removido.
ArrayDeleteDouble - Exclui o elemento da matriz no índice fornecido. Retorna o tamanho da nova matriz ou -1 se nada puder ser removido.
ArrayDeleteString - Exclui o elemento da matriz no índice fornecido. Retorna o tamanho do novo array, ou -1, se nada pudesse ser removido.
ArrayInsertDouble - Insere um elemento de matriz no índice fornecido. Retorna o tamanho do novo array.
BubbleSort2 - Executa uma classificação de bolhas nos elementos de uma matriz bidimensional.
GetTypeLastDeleted - Retorna o tipo do último pedido excluído ou -1
iBarLargest - Retorna o índice da maior barra, ou -1.
iBarOfDayCalc - Retorna o número da barra calculada desde o início do dia. A numeração das barras começa a partir de 1 (um)
iBarOfDayReal - Retorna o número real da barra desde o início do dia.
NameDayOfWeek - Retorna o nome do dia da semana
NormalizeLot - Retorna o valor normalizado do lote negociado.
NormalizePrice - Retorna o valor do preço normalizado para o tamanho do tick.
WeekOfMonth - Retorna o número da semana do mês dada a data
ClosePosBySortLots - Fechar posições em ordem de classificação por tamanho de lote.
AddLeadingZero - Adiciona zeros iniciais "0" suficientes à string S para tornar a string S igual ao comprimento K.
toTime - Converte dois/três inteiros em uma string no formato de hora
Página nº 9
StringLower - Retorna uma string minúscula
StringUpper - Retorna uma string em MAIÚSCULAS
StringToArrayDouble - Transferir números reais de string para array
StringToArrayInt - Transferir valores inteiros de string para array
StrSplit - Dividindo uma string em uma matriz de elementos
StrTran - Substituição de Substring
MovingInWL - Movendo o nível de parada para o ponto de equilíbrio
isTradeTimeString - Retorna o sinalizador de ativação de negociação de tempo.
isTradeTimeInt - Retorna o sinalizador de permissão de negociação de tempo.
Adicionalmente:
Todas as funções em um arquivo.
Todas as funções estão na forma de bibliotecas vinculadas.
Função ExistOrders().
Retorna o sinalizador de existência do pedido. Ele responderá à pergunta se a ordem está definida ou não. Usando esta função, você pode solicitar qualquer pedido, bem como um mais específico. O filtro de solicitação é configurado usando os parâmetros da função: