[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 613
Como posso verificar a ausência de uma ordem aberta ou pendente com um determinado número mágico? Podemos verificar a presença de uma ordem selecionada, mas como posso verificar a ausência de uma ordem?
sllawa3: Como posso verificar a ausência de uma ordem em aberto ou uma ordem pendente com um determinado número mágico? Podemos verificar a seleção de uma ordem, mas como posso verificar a ausência de uma ordem?
sllawa3: Como posso verificar a ausência de uma ordem aberta ou pendente com um determinado número mágico? Podemos verificar a presença de uma ordem selecionada, mas como posso verificar a ausência de uma ordem?
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.03.2008 |//| Описание : Возвращает флаг существования ордеров. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любой ордер) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время установки) |//+----------------------------------------------------------------------------+bool ExistOrders(string sy="", int op=-1, int mn=-1, datetime ot=0) {
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ty=OrderType();
if (ty>1 && ty<6) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
return(False);
}
if (ExistPositions(СИМВОЛ, ОПЕРАЦИЯ, МАГИК, ВРЕМЯ ОТКРЫТИЯ)==false) {код, если нету позиции}
int ticket;
int start()
{
int prim=8;
while(ticket<prim)
{
ticket++;
}
Print(ticket);
return;
}
Ao testar este código, o registro dá um resultado de "8" um número infinito de vezes. Você pode me dizer como fazer o resultado é dado apenas uma vez. Obrigado.
Ao testar este código, o registro dá um resultado de "8" um número infinito de vezes. Você pode me dizer como fazer o resultado é dado apenas uma vez. Obrigado.
O seletor encontra uma ordem se houver uma aberta, mas se não houver uma aberta, como posso encontrá-la? o seletor ainda mostrará a última posição fechada existente ...
int DS=0;
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) // если под такой позицией ордер не выбран идём на следующий круг
{ if(OrderSymbol() == Symbol())// если символ ордера не совпадает с символом инструмента идём на следующий круг
{ if(OrderMagicNumber() == MAGA) // если Magic ордера не совпадает с MAGA идём на следующий круг
{if(OrderType() == OP_BUY)DS++; // если дошли аж суда и тип бай то увеличиваем счётчик на 1
}
}
}
}
// если тут DS=0 значит открытых ордеров по текущему символу с заданным магиком типа бай нету
Como posso verificar a ausência de uma ordem em aberto ou uma ordem pendente com um determinado número mágico? Podemos verificar a seleção de uma ordem, mas como posso verificar a ausência de uma ordem?
Se não houver disponibilidade, então não há disponibilidade :)))
Sim... se ao menos... o seletor mantém o valor de ter a última pose...
- obter os números das barras mais externas para o período em questão.
- usamos as funções de busca de máximos e mínimos.
https://docs.mql4.com/ru/series/iLowest
https://docs.mql4.com/ru/series/iHighest
Certo?
Como posso verificar a ausência de uma ordem aberta ou pendente com um determinado número mágico? Podemos verificar a presença de uma ordem selecionada, mas como posso verificar a ausência de uma ordem?
É o mesmo para as encomendas ...
Você pode me dizer como fazer o resultado é dado apenas uma vez.
Obrigado.
Você pode me dizer como fazer o resultado é dado apenas uma vez.
Obrigado.
Eu tenho um problema ... ajudar ...
O seletor encontra uma ordem se houver uma aberta, mas se não houver uma aberta, como posso encontrá-la? o seletor ainda mostrará a última posição fechada existente ...
Qual é o problema?