Из индикатора открыть ордер - страница 2

 
ArNic писал (а) >>

Объясни пожалуйста мне функцию.

Правильно ли я понял, что на канале 0 должна быть больше нуля на текущем тике. Или я неправильно понял?

Две последнии цифры:

предпоследняя - номер буфера индикатора, нумерация начинается с нуля (0- стрелка сверху, 1-стрелка снизу)

последняя - номер анализируемого бара, нумеруются они с конца, 0 - текущий(незаконченный), 1- предпоследний, .... и т.д.

З.Ы. Проверил, Алерт - выдается, только там в одном месте ATZ, в другом ATZS

 
ArNic писал (а) >>

Но ведь не выдает сообщение. Пример кода я привел - может что неправильно делаю :(

А как Вы проверяете? Запустите в тестере, и смотрите закладку журнал.

2008.06.19 09:35:35 2008.05.27 10:00 Robot EURGBP,H1: Alert: пора открывать Маленький ордер
2008.06.19 09:35:35 2008.05.27 09:00 Robot EURGBP,H1: Alert: пора открывать Большой ордер
2008.06.19 09:35:35 2008.05.27 02:00 Robot EURGBP,H1: Alert: пора открывать Маленький ордер
2008.06.19 09:35:35 2008.05.26 17:00 Robot EURGBP,H1: Alert: пора открывать Большой ордер

 

Спасибо с помощь, буду дальше работать. О результатах сообщу

 

Работает в тесетре, буду ждать результатов на демке

 

Ну сделал я это, а толку - у меня в тестере сообщает об ошибке - новая цена. Так я перед самым открытием ордера запрашиваю цену. :(

 
ArNic писал (а) >>

Ну сделал я это, а толку - у меня в тестере сообщает об ошибке - новая цена. Так я перед самым открытием ордера запрашиваю цену. :(

У Вас впереди длинный путь. Такая ошибка в тестере скорее всего говорит о том, что при открытии путаете Bid и Ask. Почитайте учебник, там есть подробное разъяснение подобных моментов, разбор примеров. Удачи.

 
Figar0 писал (а) >>

У Вас впереди длинный путь. Такая ошибка в тестере скорее всего говорит о том, что при открытии путаете Bid и Ask. Почитайте учебник, там есть подробное разъяснение подобных моментов, разбор примеров. Удачи.

Разобрался, спасибо - просто Ask пишу а не через запрос.

Спасибо большое Figsr0 - без вас как без рук. Благодарю за помощь.

 

У меня вопрос такой, индикатор начинает помаргивать активной свече - и на 90% индикатор закрепляется на свече. Как сделать, чтобы при морганиии индикатора происходило открыте позиции?

 
ArNic писал (а) >>

У меня вопрос такой, индикатор начинает помаргивать активной свече - и на 90% индикатор закрепляется на свече. Как сделать, чтобы при морганиии индикатора происходило открыте позиции?


моргул один раз

моргнул 5 раз

моргнул 15 раз


моргнул

через 30 минут снова моргнул

черет 5 минут еще

через 25 минут еще


моргает каждые 2 минуты ровно


моргает с разной дискретностью


Вы решите что значит для Вас "моргание"

ибо можно на первом "моргании" отрыть а можно делать сложный алгоритм отличающий одно "моргание" от другого

 

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


Я прост оне пойму, как поймать это моргание, вот если смогу зафиксировать моргание, то смогу регулировать критерии открытия ордера

P/S/ сейчас у меня такой советник


   bool   result;
   double price;
   int    cmd,error;
         if (iCustom(NULL,0,"ATZ",15,300,sup,1)>0) //Появилась точка сверху
         {
//----------------------------Close order --------------------------
               if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
                 {
                  cmd=OrderType();
                  //---- first order is buy or sell
                  if(cmd==OP_BUY || cmd==OP_SELL)
                    {
                     while(true)
                       {
                        if(cmd==OP_BUY) {price=Bid;}
                        else            {price=Ask;}
                        
                        result=OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE);
                        if(result!=TRUE) { error=GetLastError(); Print("LastError = ",error); }
                        else error=0;
                        if(error==135) RefreshRates();
                        else break;
                       }
                    }
                 }
               else Print( "Error when order select ", GetLastError());
//----------------------------Close order --------------------------
               if (sup==0){
               OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0); sup=1;
               } else {
               OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0); sup=0;
               }
         }
//----
   return;
Да, забыл сказать в самом начале объявлена переменная "sup" со значением 0
Причина обращения: