• Уважаемый гость! Чтобы просмотреть скрытую часть информации Вам нужно зарегистрироваться.

    Быстрая регистрация!

Удалено Нужна помощь

  • Автор темы ANDROID_01
  • Дата начала
A

ANDROID_01

Участник
Регистрация
08.06.2017
Сообщения
10
Реакции
0
Нужна помощь. Не могу преобразовать в код свою идею. Есть к примеру стандартный код для открытия ордера на покупку или продажу.
if(l1<=0 && h1>0 && b1>b2 && Lot<15)
{
if(OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,0,0,IntegerToString(Expiration),Magic,0,Blue)>0)
return;
}
if(l1>0 && h1<=0 && b1<b2 && Lot<15)
{
if(OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,IntegerToString(Expiration),Magic,0,Red)>0)
return;
}
Закрытие ордера происходит через (Expiration). Необходимо добавить код который при изменении условия (Lot>15) вместо открытия ордера нарисует точку (159) соответствующего цвета и определит её координаты (время и цену) записав их в переменные (например time1 и Price1). Или наоборот. Определит координаты а уже по ним нарисует точку. Не выходя из (void OnTick()) запустить счётчик времени. По завершении времени (Expiration) также нарисует точку только чёрного цвета так же запомнив координаты времени и цены (например time2 и Price2). Только после этиго выйдет из (void OnTick()).В итоге на графике это должно выглядеть примерно как в тестере стратегий.
 
Последнее редактирование:
  • Панель управления
  • #2
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 226
Реакции
518
Нужна помощь. Не могу преобразовать в код свою идею. Есть к примеру стандартный код для открытия ордера на покупку или продажу.
if(l1<=0 && h1>0 && b1>b2 && Lot<15)
{
if(OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,0,0,IntegerToString(Expiration),Magic,0,Blue)>0)
return;
}
if(l1>0 && h1<=0 && b1<b2 && Lot<15)
{
if(OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,IntegerToString(Expiration),Magic,0,Red)>0)
return;
}
Закрытие ордера происходит через (Expiration). Необходимо добавить код который при изменении условия (Lot>15) вместо открытия ордера нарисует точку (159) соответствующего цвета и определит её координаты (время и цену) записав их в переменные (например time1 и Price1). Или наоборот. Определит координаты а уже по ним нарисует точку. Не выходя из (void OnTick()) запустить счётчик времени. По завершении времени (Expiration) также нарисует точку только чёрного цвета так же запомнив координаты времени и цены (например time2 и Price2). Только после этиго выйдет из (void OnTick()).В итоге на графике это должно выглядеть примерно как в тестере стратегий.
А зачем точки ? Не могу понять ...
 
A

ANDROID_01

Участник
Регистрация
08.06.2017
Сообщения
10
Реакции
0
Доброго времени суток ... А как получить координаты с пустого места (время и цену)... И как определить (визуально) что советник не совершает сделки по определённой причине... Как определить эффективность стратегии ...
 
  • Панель управления
  • #4
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 226
Реакции
518
Доброго времени суток ... А как получить координаты с пустого места (время и цену)... И как определить (визуально) что советник не совершает сделки по определённой причине... Как определить эффективность стратегии ...
Что значит с пустого места ? С какого пустого места ? чьи координаты..
Нужно распринтовывать код, до открытия ордеров, на старте функций
ЧТо значит эффективность ? Формула какая то или что ?
 
A

ANDROID_01

Участник
Регистрация
08.06.2017
Сообщения
10
Реакции
0
Советник открывает ордера по стратегии начиная с 1$ с мартингейлом .Торгует относительно стабильно до определённого момента пока не начнётся серия из 10 - 15 убыточных сделок . В этот момент ставка достигает 1500 - 2500 $ . Меня это не устраивает . Тут надеюсь всё понятно ? Я могу запретить торговать при достижении определённой величины лота . Но тогда как я или советник узнаем когда закончится эта убыточная серия чтобы продолжить открывать сделки ?
 
  • Панель управления
  • #6
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 226
Реакции
518
Советник открывает ордера по стратегии начиная с 1$ с мартингейлом .Торгует относительно стабильно до определённого момента пока не начнётся серия из 10 - 15 убыточных сделок . В этот момент ставка достигает 1500 - 2500 $ . Меня это не устраивает . Тут надеюсь всё понятно ? Я могу запретить торговать при достижении определённой величины лота . Но тогда как я или советник узнаем когда закончится эта убыточная серия чтобы продолжить открывать сделки ?
Ну а кто должен знать ? тут телепатов нет, еслиб знать когда закончиться убыточная серия , то можно сразу входить на всю котлету....
 
A

ANDROID_01

Участник
Регистрация
08.06.2017
Сообщения
10
Реакции
0
То что я предложил поможет советнику это определить . Всё элементарно просто . Для этого и нужна точка (объект) с координатами времени и цены . В тестере стратегий открытие и закрытие ордеров отмечаются треугольником а на реальном графике не открытые и не закрытые ордера будут отмечаться точками ...
 
Последнее редактирование:
A

ANDROID_01

Участник
Регистрация
08.06.2017
Сообщения
10
Реакции
0
Как мы определяем сделка в прибыли или в убытке ? - Сравниваем Ask и Bid (если ордер был открыт а потом закрыт). А если мы запретили советнику открывать сделки где тогда мы можем получить эти цены ? Только в том случае если советник вместо открытия ордера (мы ему запретили) нарисует точку с координатами времени и ценой Ask . Время нужно для определения координаты второй точки через время экспирации с ценой Bid которую мы уже можем сравнить с Ask .
 
A

ANDROID_01

Участник
Регистрация
08.06.2017
Сообщения
10
Реакции
0
Вот к примеру есть код который рисует точку с координатами цены и времени . но я не пойму почему точка имеет цвет Red (может это по умолчании) и почему цена точки всегда ниже реальной цены на 2 пункта .
//+------------------------------------------------------------------+
void OnTick()
{
A=Ask;D=Bid;
string up_arrow="up_arrow";
datetime time=TimeCurrent();
// if (A>0)
{
ObjectCreate(0,up_arrow,OBJ_ARROW,0,0,0); // создадим метку ( точку )
ObjectSetInteger(0,up_arrow,OBJPROP_ARROWCODE,159); // установим код стрелки
ObjectSetInteger(0,up_arrow,OBJPROP_TIME,time); // зададим время
ObjectSetDouble(0,up_arrow,OBJPROP_PRICE,A); // зададим цену
}
// if (D>0)
Comment("Цена Ask=", A,"\n","Цена Bid =", D,"\n","Время=",time,"\n","Цена =",A);
}

//+------------------------------------------------------------------+
 
Теги Нет
Верх