Помогите сделать последние шаги в написании первого советника.

От IggyPop, 18 мая, 2016 в Архив

Автор#1

В общем у меня появилась такая проблема. По задумке,советник должен открывать один ордер (допустим OrderSend("AUDUSD", OP_SELL, 0.1, Bid, 3, 0.71100, 0.70500, "", 123, 0, Red); и открывать его заново только по достижению лося или профита. И такое условие должно быть для каждого указанного OrderSend.
Проблема в чем,из-за условия "if (OrdersTotal() >= 1)" открывается один ордер(допустим на продажу) а на покупку уже не открывается,пока не закроется тот.

Очень прошу,помогите исправить код так,что бы каждый ордер был в коде самостоятельным,и условие "if (OrdersTotal() >= 1)" относилось только к одному ордеру.

Вот код
void OnTick()
{

if (OrdersTotal() >= 1)
{
return;
}
if (Bid 0.70998)
{
int ticket;
ticket = OrderSend("AUDUSD", OP_SELL, 0.1, Bid, 3, 0.71100, 0.70500, "", 123, 0, Red);
}

//-------------------------------------------------------------------------------------------//
if (OrdersTotal() >= 1)
{
return;
}
if (Ask > 0.71000 && Ask {
int ticket;
ticket = OrderSend("AUDUSD", OP_BUY, 0.1, Ask, 3, 0.70900, 0.71500, "", 123, 0, Blue);
}
}

#2

Вам -бы уроки по МКЛ посмотреть, там как раз эта тема подробно описана. Надо делать функцию подсчёта ордеров определённого типа. эта функция Вам ещё не раз пригодится... ( ну, если продолжите писать советники )

Автор#3

Спасибо,я себе уже скачал целый курс по mql4)))Правда там только 2 урока общие,потом идет более узкие разборы(написание советника по мартингейлу,сетки ордеров и т.д.),а там уже идут примеры с использованием различных индикаторов,что усложняет понимание простого выставления ордеров,т.к. идут дополнительные условия...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025