Похоже вам что-то вроде этого нужно. А вот с логикой уже разбирайтесь сами.
как то ни чего не поменялось только, хуже стало с этими поправками он вообще перестал реагировать на изменение условия закрытия, живет своей
жизнью. %-(
voidOnTick()
{
//--- check for history and tradingif(Bars<100 || IsTradeAllowed()==false)
return;
//--- calculate open orders by current symbolif(CalculateCurrentOrders(Symbol())==0)
CheckForOpen();
elseint orders = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
continue;
if(OrderMagicNumber() != MAGICMA)
continue;
if(OrderSymbol() != _Symbol)
continue;
switch(OrderType())
{
case OP_BUY:
orders++;
if(MaCurrent20L>Ask)
break;
if(OrderClose(OrderTicket(),OrderLots(),Bid,1,White))
{
Print("Ордер закрыт ",GetLastError());
break;
}
Print("Ошибка закрытия Buy",GetLastError());
break;
case OP_SELL:
orders++;
if(MaCurrent20H<Ask)
break;
if(OrderClose(OrderTicket(),OrderLots(),Bid,1,Black))
{
Print("Ордер закрыт ",GetLastError());
break;
}
Print("Ошибка закрытия Buy",GetLastError());
break;
}
if(orders == 0)
{
CheckForOpen(); /* условия открытия позиции */
}
}
//---//---
}
voidOnTick()
{
//---/* предварительные функции для закрытия позиций *///---if( CheckingOrders() > 0 )
return;
//---/* тут проверка на открытие торговой позиции */
}
//------------------------------------------------------int CheckingOrders(void)
{
int orders = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
continue;
if(OrderMagicNumber() != Magic)
continue;
if(OrderSymbol() != _Symbol)
continue; == 0)
{
/* условия открытия позиции */
}
switch(OrderType())
{
case OP_BUY:
orders++;
if(MaCurrent20H<Ask)
break;
if(OrderClose(OrderTicket(),OrderLots(),Bid,1,White))
{
Print("Ордер закрыт ",GetLastError());
break;
}
Print("Ошибка закрытия Buy",GetLastError());
break;
case OP_SELL:
orders++;
if(MaCurrent20H>Ask)
break;
if(OrderClose(OrderTicket(),OrderLots(),Bid,1,Black))
{
Print("Ордер закрыт ",GetLastError());
break;
}
Print("Ошибка закрытия Buy",GetLastError());
break;
}
}
//---return orders;
}
P.S.
А вообще начните с основ и постепенно разбирайтесь. Пока вы спотыкаетесь на самых элементарных вещах. Рано писать боевых экспертов пока
вам. Обретете уверенности хоть немного тогда уже можно и что-то думать боевое. Удачи вам.
P.S. А вообще начните с основ и постепенно разбирайтесь. Пока вы спотыкаетесь на самых элементарных
вещах. Рано писать боевых экспертов пока вам. Обретете уверенности хоть немного тогда уже можно и что-то думать боевое. Удачи вам.
Ура! огромнейше благодарен. Разобрался где ошибка, Сейчас надо создать фильтр чтобы оуточнить точку входа в рынок.
Ура! огромнейше благодарен. Разобрался где ошибка, Сейчас надо создать фильтр чтобы отсечь ненужные ставки.
Здравствуйте! Вот понимаете ли в чем проблема, Вы попросили помощи и люди рассматривали, что уж там не так, под конец Вы нашли и написали - УРА! А в чем собственно
Aleksandr Martynov: Здравствуйте! Вот
понимаете ли в чем проблема, Вы попросили помощи и люди рассматривали, что уж там не так, под конец Вы нашли и написали - УРА! А в чем
собственно
Индикатор МА не работает в Global для closeorder, хотя стоит отдельный модуль индикаторов, который работает только на sendorder. Ошибка глупейшая и логика ошибки не полятна.
Так зачем делать лишние телодвижения, если уже делается один перебор позиций. И считайте сразу в нем.
Я лишние телодвижения не делаю, для меня проще создать отдельный модуль той или иной функции, а потом при необходимости вызвать эту функцию короткой коммандой. Чем таскать эту функцию по всему телу с полным кодом.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Так зачем делать лишние телодвижения, если уже делается один перебор позиций. И считайте сразу в нем.
привычка выводить функции в отдельных модулях чем комкать в один ком.
MaCurrent20H & MaCurrent20L прекрасно работают на условие открытия ордера.
Под "распечатать" я имел в виду вывести в журнал вместе с ошибкой.
P. S. Возможно, Вы не заметили, но вот в этом коде два раза используется MaCurrent20H, но нет MaCurrent20L.
Под "распечатать" я имел в виду вывести в журнал вместе с ошибкой.
P. S. Возможно, Вы не заметили, но вот в этом коде два раза используется MaCurrent20H, но нет MaCurrent20L.
я уже давно поменял но эффект тот же. Я так понимаю, почему то отбивает условие по шорт, а по лонг даже думать отбить не думает
Под "распечатать" я имел в виду вывести в журнал вместе с ошибкой.
P. S. Возможно, Вы не заметили, но вот в этом коде два раза используется MaCurrent20H, но нет MaCurrent20L.
как то совсем с этими поправками.
Похоже вам что-то вроде этого нужно. А вот с логикой уже разбирайтесь сами.
как то ни чего не поменялось только, хуже стало с этими поправками он вообще перестал реагировать на изменение условия закрытия, живет своей жизнью. %-(

ааааа..... Голова кипит.Или вот так если нравиться
P.S. А вообще начните с основ и постепенно разбирайтесь. Пока вы спотыкаетесь на самых элементарных вещах. Рано писать боевых экспертов пока вам. Обретете уверенности хоть немного тогда уже можно и что-то думать боевое.Удачи вам.
Или вот так если нравиться
P.S. А вообще начните с основ и постепенно разбирайтесь. Пока вы спотыкаетесь на самых элементарных вещах. Рано писать боевых экспертов пока вам. Обретете уверенности хоть немного тогда уже можно и что-то думать боевое.Удачи вам.
Ура! огромнейше благодарен. Разобрался где ошибка, Сейчас надо создать фильтр чтобы оуточнить точку входа в рынок.
Ура! огромнейше благодарен. Разобрался где ошибка, Сейчас надо создать фильтр чтобы отсечь ненужные ставки.
Здравствуйте! Вот понимаете ли в чем проблема, Вы попросили помощи и люди рассматривали, что уж там не так, под конец Вы нашли и написали - УРА! А в чем собственно
Индикатор МА не работает в Global для closeorder, хотя стоит отдельный модуль индикаторов, который работает только на sendorder. Ошибка глупейшая и логика ошибки не полятна.
Так зачем делать лишние телодвижения, если уже делается один перебор позиций. И считайте сразу в нем.