[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 982

 
Aleksander:

обьяви переменную

в старте - при получении сигнала, увеличивай её на 1, при достижении N сигналов Открывай сделку,

обнули счётчик...

Написал как смог, только непонятно как оформить прибавление сигнала...
extern double     PropuskSignala             =  0;  //сколько сигналов инлдикатора пропускать
//-------------------
double PropuskSignalaB,PropuskSignalaS;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
//получаем сигнал: (SignalBuy==true;)
PropuskSignalaB++;  //вот здесь как записать? Чтобы прибавлялись
//получаем сигнал: (SignalSell==true;)
PropuskSignalaS++;  //вот здесь как записать? Чтобы прибавлялись

if(SignalBuyif(PropuskSignalaB>=PropuskSignala || PropuskSignalaS>=PropuskSignala){
//открываем ордер Buy
}
if(SignalSellif(PropuskSignalaS>=PropuskSignala || PropuskSignalaB>=PropuskSignala){
//открываем ордер Sell
}
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

Добрый день!

Помогите разобратся в таком вопросе. Сделал советник. Встал вопрос можно ли с той кривой доходности какую он выдает работать. Вопрос такой какую кривую можно считать минимально "кривой" :). Свою кривую дал. 1999г.-2010г.

P.S. Вопрос не праздный. Поставишь на реал, а у советника крмвая вниз временно пошла.

 
001:

Добрый день!

Помогите разобратся в таком вопросе. Сделал советник. Встал вопрос можно ли с той кривой доходности какую он выдает работать. Вопрос такой какую кривую можно считать минимально "кривой" :). Свою кривую дал. 1999г.-2010г.

P.S. Вопрос не праздный. Поставишь на реал, а у советника крмвая вниз временно пошла.

Всё зависит от кода самого советника. Может он совсем голый - тупо игрушка для тестера. Ну и тест по барам тут у вас. Советник имеет явный контроль открытия бара?
 
artmedia70:
Всё зависит от кода самого советника. Может он совсем голый - тупо игрушка для тестера. Ну и тест по барам тут у вас. Советник имеет явный контроль открытия бара?


Да, конечно имеет.

static int PrevTime=0;
int start()
{

if (Time[0]<=PrevTime) return(0);
{
PrevTime=Time[0];

}

Поясните первые две фразы, плз.

 

чёт я не допонимаю в учебнике,

"break" он прекращает полностью цикл, и эксперт ждет нового тика?

и можно ли его использовать в "if-else", допустим если истенно то "break" ?

 
gheka:

чёт я не допонимаю в учебнике,

"break" он прекращает полностью цикл, и эксперт ждет нового тика?

и можно ли его использовать в "if-else", допустим если истенно то "break" ?

break прерывает выполнение всего цикла и продолжает выполнять ваш код со следующей строки после закрывающей скобки блока операторов цикла.

в if-else использовать можно. А как иначе вы проверите критерии для прерывания цикла???

 
Функция OrderModify() создает отдельную запись в истории торговли. Использую ее при написании советника для реализации ТрейлингСтопа. Т.е. если выполняется условие ТрейлнигСтопа и СтопЛосс двигается, а это может происходить каждую сегунду, то столькое же строк появляется в истории. Можно как то избежать этого? Ведь встроенный в метатрейдер ТрейлингСтоп работает нормально.
 
dzam:
Функция OrderModify() создает отдельную запись в истории торговли. Использую ее при написании советника для реализации ТрейлингСтопа. Т.е. если выполняется условие ТрейлнигСтопа и СтопЛосс двигается, а это может происходить каждую сегунду, то столькое же строк появляется в истории. Можно как то избежать этого? Ведь встроенный в метатрейдер ТрейлингСтоп работает нормально.

А не проще ли для реализации трала использовать цену, величину стопа, дистанцию стопа от цены и шаг трала???

Или до подъезда со скамейки интереснее через Зимбабве идти?

 
artmedia70:

А не проще ли для реализации трала использовать цену, величину стопа, дистанцию стопа от цены и шаг трала???

Или до подъезда со скамейки интереснее через Зимбабве идти?

Ок, заходим через парадный вход. Внимание, еще раз вопрос:

Вот кусок кода из примера реализации ТрайлингСтопа

/---- проверяем, не надо ли передвинуть Стоп Лосс:
        //---- если размер трейлингстопа не слишком маленький,
        if ( TrailingStop > MarketInfo( Symbol(), MODE_STOPLEVEL ) )
        {
            //---- если прибыль позиции больше TrailingStop пунктов,
            if ( NormalizeDouble( Bid - _BuyOpenPrice, Digits ) > 
                  NormalizeDouble( TrailingStop*Point, Digits ) )
            {
                //---- если новый уровень стоплосса выше, чем сейчас у позиции
                //---- (или если у позиции нет Стоп Лосса),
                if ( NormalizeDouble( Bid - TrailingStop*Point, 
                    Digits ) > _BuyStopLoss
                      || _BuyStopLoss <= 0.0 )
                {
                    //---- модифицируем ордер
                    if ( !OrderModify( _BuyTicket, _BuyOpenPrice, 
                          NormalizeDouble( Bid - TrailingStop*Point, 
                                           Digits ), 
                          _BuyTakeProfit, 0 ) )
                    {
                        Alert( "OrderModify Error #", 
                              GetLastError() );
                        return(-1);
                    }
                }                     

}

в этом куске кода для изменения ордера по условиям ТрейлингСтопа используется OrderModify(). Функция OrderModify() создает отдельную запись в истории торговли. Т.е. если выполняется условие ТрейлнигСтопа и СтопЛосс двигается, а это может происходить каждую секунду, то столькое же строк появляется в истории. Можно как то избежать этого? Ведь встроенный в метатрейдер ТрейлингСтоп работает нормально.

 
dzam:

Ок, заходим через парадный вход. Внимание, еще раз вопрос:

Вот кусок кода из примера реализации ТрайлингСтопа

}

в этом куске кода для изменения ордера по условиям ТрейлингСтопа используется OrderModify(). Функция OrderModify() создает отдельную запись в истории торговли. Т.е. если выполняется условие ТрейлнигСтопа и СтопЛосс двигается, а это может происходить каждую секунду, то столькое же строк появляется в истории. Можно как то избежать этого? Ведь встроенный в метатрейдер ТрейлингСтоп работает нормально.


Избежать не получится. Каждая торговая операция, как и любая модификация позиции создает свою запись в журнале
Причина обращения: