Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ваш брокер не поддерживает мобильные MetaTrader 5? Попроси приобрести их!
protr
358
protr 2015.10.23 14:28 

Здравствуйте не могу дойти кодом до решения задачи.. как не старался... МТ4

Суть проста.

1) Запомнить значение текущего еквити и прибавить к нему шаг при достижении которого  произойдет закрытие всех рыночных ордеров (ето уже реализовано функцией Close_All();)

2) После закрытия к новому значению добавить шаг для следующего уровня закрытия и так по кругу.

Спасибо 

void OnStart()
  {
  
   if(AccountEquity()>AccountEquity_next_level) Close_All();

   if(Order_count()==0)
      AccountEquity_next_level = AccountEquity() + NormalizeDouble(STEP,2);
   else
      Close_All();
  }
Alexey Viktorov
6681
Alexey Viktorov 2015.10.23 16:12  
protr:

Здравствуйте не могу дойти кодом до решения задачи.. как не старался... МТ4

Суть проста.

1) Запомнить значение текущего еквити и прибавить к нему шаг при достижении которого  произойдет закрытие всех рыночных ордеров (ето уже реализовано функцией Close_All();)

2) После закрытия к новому значению добавить шаг для следующего уровня закрытия и так по кругу.

Спасибо 

void OnStart()
  {
  
   if(AccountEquity()>AccountEquity_next_level) Close_All();

   if(Order_count()==0)
      AccountEquity_next_level = AccountEquity() + NormalizeDouble(STEP,2);
   else
      Close_All();
  }

А попробуй перевести всё это на русский. Что получится?

Проверь так

void OnStart()
  {
  
   if(AccountEquity()>AccountEquity_next_level)
    {
      Close_All();
     AccountEquity_next_level = AccountEquity() + NormalizeDouble(STEP,2);
    }
  }
Vitaly Muzichenko
3412
Vitaly Muzichenko 2015.10.23 16:36  
protr:

Здравствуйте не могу дойти кодом до решения задачи.. как не старался... МТ4

Суть проста.

1) Запомнить значение текущего еквити и прибавить к нему шаг при достижении которого  произойдет закрытие всех рыночных ордеров (ето уже реализовано функцией Close_All();)

2) После закрытия к новому значению добавить шаг для следующего уровня закрытия и так по кругу.

Спасибо 

void OnStart()
  {
  
   if(AccountEquity()>AccountEquity_next_level) Close_All();

   if(Order_count()==0)
      AccountEquity_next_level = AccountEquity() + NormalizeDouble(STEP,2);
   else
      Close_All();
  }
Запоминайте все в глобальную переменную, это будет в разы надежнее, и ее можно будет проще получить по всем инструментам.
protr
358
protr 2015.10.24 17:42  

Vitaly Muzichenko:
Запоминайте все в глобальную переменную, это будет в разы надежнее, и ее можно будет проще получить по всем инструментам.

К сожалению не разобрался... если вы о GlobalVariableSet

 

Vasyl Nosal
18532
Vasyl Nosal 2015.10.28 09:06  

Давай всё поэтапно.

1) Для начала создай советник, а не скрипт. 

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий