Советник: Разные вопросы - Торговая стратегия - страница 2

 
Marco vd Heijden:

Да, в цикле orderelect используйте фильтр:

И не забудьте сбросить его на 0 при очередной проверке, иначе он удвоится.
На самом деле я уже пробовал OrderSymbol() == Symbol() немного по другому.
Я попробую это в ближайшее время, спасибо большое за быстрый ответ.
 
Marco vd Heijden:

Да, в цикле orderelect используйте фильтр:

И не забудьте сбросить его в 0 при повторной проверке, иначе он будет удваиваться.

Извините, вы имеете в виду вот этот?

Нижеприведенный метод не работает для меня.

int orders = 0;
for( int i = OrdersTotal() - 1; i >= 0; i-- )
{
    if( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;

    if( OrderSymbol() == Symbol() )
    {
        Print( "count orders: ", orders );
        orders++;
    }
}

---

Моя цель состоит в том, что если ордера символа графика равны 0 (нулю), то сделайте что-нибудь, иначе пропустите этот if();

if( Chart symbol order == 0 ) // I can't get correct counts for Chart Symbol Orders
{
  // calculate something
  // check something for Sell
  // check something for Buy
  // ...
}

Заранее спасибо.

 
Max Enrik: Приведенные ниже методы не работают для меня.
"Не работает" бессмысленно - так же, как и говорить, что машина не работает. Не заводится, не включается передача, нет электричества, пропал ключ, шины спущены - бессмысленно. Здесь нет читающих мысли.
 
whroeder1:
"Не работает" бессмысленно - так же, как и говорить, что машина не работает. Не заводится, не включается передача, нет электричества, пропал ключ, шины спущены - бессмысленно. Здесь нет читающих мысли.

Да, он не работает для меня.
Я использую эту часть кода для своих функций Close Open Orders без каких-либо проблем.

Но теперь мне нужно получить счетчик открытых ордеров по символу графика. Эта часть кода не работала для моей цели. Очевидно, что я упомянул об этом в приведенном ниже коде.

if( Chart symbol order == 0 ) // I can't get correct counts for Chart Symbol Orders / I meant I do not know how can I get counts of Chart Symbol Orders.
{
  // ...
}
 

это правильный подход, так что вы должны быть в состоянии заставить его работать, если заказы остаются нулевыми

int orders = 0;
for( int i = OrdersTotal() - 1; i >= 0; i-- )
{
    if( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;

    if( OrderSymbol() == Symbol() )
    {
        Print( "count orders: ", orders );
        orders++;
    }
}

if( orders == 0 ) // I can't get correct counts for Chart Symbol Orders
{
  // calculate something
  // check something for Sell
  // check something for Buy
  // ...
}
 
Marco vd Heijden:

это правильный подход, так что вы должны быть в состоянии заставить его работать, если заказы остаются нулевыми


После того, как я немного изменил это, теперь это работает для меня.

Большое спасибо, господин Марко.

 

Сначала мои 2 автоматических ордера получили 50 пипсов и оба 100 пипсов. Sl и Tp были 50/50 (соотношение 1:1).

Потрясающе! Простая и лучшая торговая стратегия - хорошо бы ее улучшить.

aeas
 

Я пытаюсь использовать приведенный ниже код для часов работы советника, чтобы только советник работал в определенные часы. Но EA Trading запускается в 11 вечера.

Вопрос: Что я упустил для торговых часов, пожалуйста?

void OnTick()
{
    // below trading Hours just for example
    if( Hour() >= 10 && Hour() < 12 ) return;

    Runs();
    //---
    return;
}

Форум о торговле, автоматических торговых системах и тестировании торговых стратегий

Торговля только в часы работы рынка (Азия, Великобритания, Великобритания/США)

whroeder1, 2012.05.03 18:41

  1.  if(Hour()>=0 && Hour()<22)
    // if(Hour()>=0 && Hour()<=22)
      {
       return(true);
      }
      else
      {
        return(false);
      }
    //// or Simplify ///
    return( Hour()>=0 && Hour()<22 );

  2. Если вы имеете в виду код для разрешения диапазона, смотрите мой код.

Я работаю над ним, помогите мне, пожалуйста.

 
Max Enrik:

Но торговля советниками запускается в 11 вечера.

Вопрос: Что я упустил в торговых часах, пожалуйста?

Я работаю над этим, помогите мне, пожалуйста.

Вы упускаете из виду, что 10 <= 11 < 12
 
whroeder1:
Вы упускаете из виду, что 10 <= 11 < 12

Извините, я не понимаю этого.
Причина обращения: