Советники: Angry Bird (Scalping)

 

Angry Bird (Scalping):

Советник по мотивам Ilan 1.6. Используются индикаторы iCCI(CCI, Commodity Channel Index), iRSI(RSI, Relative Strength Index).

Автор: Vladimir Karputov

 


Владимир Карпутов;

# 1 - Благодарю за работу по конвертации советника для mt5;

# 2 - Я был бы рад, если бы удалось исправить ошибку компиляции

"Неявное преобразование из числа в "строку" - строки 223,241,269 и 285 (одинаковые);

# 3 - При запуске советника выдает ошибку RetCode: 10030, описание: Invalid fill, ticket of deal: 0;

Я ученик mql5 и не могу решить эти проблемы.

Я буду очень рад, если вы мне поможете.

Я использую этот алгоритм в Mt4 и с моими изменениями у меня много хороших результатов. - Я буду рад поделиться с вами своими изменениями.


С уважением,

Пауло Кампозана

Санта-Катарина - Бразилия (Переводчик Google, извините! ;-) )

 
Paulo Campozana:


Господин Карпутов;

...

# 2 - мне бы понравилось, и если бы я мог исправить ошибку компиляции

"Неявное преобразование из числа в "строку" - строки 223,241,269 и 285 (одинаковые);

...


Спасибо, теперь исправлено.

Paulo Campozana:

...

# 3 - При запуске советника он подтверждает ошибку RetCode: 10030, описание: Invalid fill, тикет сделки: 0;

...

Укажите Ваш торговый сервер, логин и пароль инвестора. Я проверяю.
 

Здравствуйте, господин Карпутов!

ХОРОШО!

Брокер: FxPro

Логин: 5112969


Инвестор: 7jzqocks

Сервер: Демо-счет FxPro-ECN

Танки,

Pcampozana

 
Paulo Campozana:

Здравствуйте, господин Карпутов!

ХОРОШО!

Брокер: FxPro

Логин: 5112969


Инвестор: 7jzqocks

Сервер: Демо-счет FxPro-ECN

Танки,

Pcampozana


Спасибо. Ждите обновления на версию 1.001 (в первую очередь обновление будет в русской части: Angry Bird (Scalping))
Angry Bird (Scalping)
Angry Bird (Scalping)
  • голосов: 21
  • 2016.12.07
  • Vladimir Karputov
  • www.mql5.com
Советник по мотивам Ilan 1.6. Используются индикаторы iCCI(CCI, Commodity Channel Index), iRSI(RSI, Relative Strength Index).
 

Привет М.Р. Карпутов!

Фантастико! Я ценю безмерно.

Здравствуйте, господин Карпутов! Фантастика! Я буду безмерно благодарен

С уважением,

Пауло Кампозана.

 

Привет, мой друг, Владимир Карпутов.

В этой программе, какова роль этой функции?

void OnTradeTransaction(const MqlTradeTransaction &trans,

const MqlTradeRequest &request,

const MqlTradeResult &result);

 
15041304:

Привет, мой друг, Владимир Карпутов.

В этой программе, какова роль этой функции?

void OnTradeTransaction(const MqlTradeTransaction &trans,

const MqlTradeRequest &request,

const MqlTradeResult &result);


Небольшая помощь: OnTradeTransaction.

В этом коде мы перехватываем входы и выходы.

//+------------------------------------------------------------------+
//| Функция TradeTransaction|
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- получаем тип транзакции в виде значения перечисления 
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- если транзакция является результатом добавления транзакции в историю
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_entry        =0;
      long     deal_type         =0;
      double   deal_price        =0.0;
      double   deal_profit       =0.0;
      double   deal_volume       =0.0;
      string   deal_symbol       ="";
      long     deal_magic        =0;
      if(HistoryDealSelect(trans.deal))
        {
         deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_type=HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_price=HistoryDealGetDouble(trans.deal,DEAL_PRICE);
         deal_profit=HistoryDealGetDouble(trans.deal,DEAL_PROFIT);
         deal_volume=HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
         deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
        }
      else
         return;
      if(deal_symbol==Symbol() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_IN)
           {
            if(deal_type==DEAL_TYPE_BUY)
              {
               LongTrade=true;               // true -> последняя открытая сделка - покупка
               ShortTrade=false;             // true -> последняя открытая сделка - продажа
               LastOpenBuyPrice=deal_price;  // последняя открытая цена "Купить"
              }
            if(deal_type==DEAL_TYPE_SELL)
              {
               LongTrade=false;              // true -> последняя открытая сделка - покупка
               ShortTrade=true;              // true -> последняя открытая сделка - продажа
               LastOpenSellPrice=deal_price; // последняя открытая цена "Продажи"
              }
           }
      if(deal_entry==DEAL_ENTRY_OUT)
        {
         if(deal_type==DEAL_TYPE_BUY) // закрыть позиции "Продажа"
           {
            ShortTrade=false;
            LastOpenSellPrice=0.0;
           }
         if(deal_type==DEAL_TYPE_SELL) // закрыть позиции "Купить"
           {
            LongTrade=false;
            LastOpenBuyPrice=0.0;
           }
        }
     }
  }

И в зависимости от типа транзакции присваиваем переменным значения или обнуляем их.

 
спасибо.
 

Здравствуйте,

Я протестировал это на демо-счете, и это работает, но когда я протестировал это на реальном счете, кажется, что это не срабатывает. Нужно ли что-то менять на реальном счете?

 

На демо-счете происходит автоматическая торговля, в то время как на реальном счете автоматическая торговля не запускается.