Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 72
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если сравнивать с балансом, то так:
Спасибо.
ок, тогда как я понимаю получится три разных кастомных функции с возвратом нужного(если искать три разных параметра)
ArraySort
потом
ArrayBsearch по нужному номеру
и дальше как с этим?
именно переход от массива к элементру структурыВы не понимаете.
Вам нужно сделать одну функцию, которая будет заполнять и сортировать массив, объявленный на глобальном уровне. Массив в функцию нужно будет передавать по ссылке.
И нужны дополнительные функции, которые из этого массива будут вынимать нужные вам данные.
Вы не понимаете.
Вам нужно сделать одну функцию, которая будет заполнять и сортировать массив, объявленный на глобальном уровне. Массив в функцию нужно будет передавать по ссылке.
И нужны дополнительные функции, которые из этого массива будут вынимать нужные вам данные.
ок, можно демонстрацию как вытащить что - то из массива структур? допустим наполнен и отсортирован
как передать по ссылке и записать
подскажите как должно выглядеть условие. Если стоп лосс сработал, то лот умножаем на 2, а если у следущего ордера сработал тейк профит лот бы вернулся к исходному лоту который был до стоплоссов.
я понимаю это примерно так, но дальше как пока не придумал..
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
еще вопрос, что не правильно написал в блоке по удалению ордеров? не всегда удаляет ордера, в журнале пишет
market order #1 cannot be deleted
{
for(int n=OrdersTotal()-1;n>=0;n--)
{
if(OrderSelect(n,SELECT_BY_POS))
{
if(OrderMagicNumber()==magic)
{
bool del=OrderDelete(OrderTicket());
if (del==true)
{
otl_b=0; otl_s=0; //обнуляем переменные отложек
}
}
}
}
}
еще вопрос, что не правильно написал в блоке по удалению ордеров? не всегда удаляет ордера, в журнале пишет
market order #1 cannot be deleted
{
for(int n=OrdersTotal()-1;n>=0;n--)
{
if(OrderSelect(n,SELECT_BY_POS))
{
if(OrderMagicNumber()==magic)
{
bool del=OrderDelete(OrderTicket());
if (del==true)
{
otl_b=0; otl_s=0; //обнуляем переменные отложек
}
}
}
}
}
Пытаетесь удалить рыночный ордер, они не удаляются, а закрываются функцией OrderClose(). Чтобы цикл удалял или закрыва правильно, нужно различать отдера по типу.
if(OrderType()<=OP_SELL) - для рыночных ордеров, if(OrderType()>OP_SELL) - для отложенных.
Есть такая штука: CHARTEVENT_MOUSE_MOVE
Вопрос: это работает на мобильных устройствах, там где нет мышки?
подскажите как должно выглядеть условие. Если стоп лосс сработал, то лот умножаем на 2, а если у следущего ордера сработал тейк профит лот бы вернулся к исходному лоту который был до стоплоссов.
я понимаю это примерно так, но дальше как пока не придумал..
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
подскажите как должно выглядеть условие. Если стоп лосс сработал, то лот умножаем на 2, а если у следущего ордера сработал тейк профит лот бы вернулся к исходному лоту который был до стоплоссов.
я понимаю это примерно так, но дальше как пока не придумал..
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
решение этой задачи зависит от полной логики советника, срабатывание стоплосса или тейкпрофита можно отследить по его комментарию.
if(StringFind(OrderComment(),"tp")>=0)// сработал тейкпрофит
...
Вы не понимаете.
Вам нужно сделать одну функцию, которая будет заполнять и сортировать массив, объявленный на глобальном уровне. Массив в функцию нужно будет передавать по ссылке.
И нужны дополнительные функции, которые из этого массива будут вынимать нужные вам данные.