[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 122

 
alsu:

возьмите скрипт period_converter и допилите условие обрезки свечи по собственному желанию, будет вам щастье. Например, навскидку, для получения свечек на x часов 10 минут:

заменить на

Ну или как-то так)))


Спасибо за гениальную идею!  Пробовал все что смог придумать ,но логика скрипта выше моих возможностей.

 Часовки с коєфф=1 в офлайне  всегда идентичны оригиналу, а выход где то рядом :(
if(time0>=i_time+periodseconds && TimeMinute(time0)==10 || i==0)
// и
if(time0>=i_time+periodseconds +60*10 || i==0)
// и
if(TimeMinute(time0)==10 || i==0)
// тоже

 Как можно сдвинуть открытие часовой свечи в скрипте Period_converter на 10мин? Нужны ли изменения на этапе записи истории?

 
artmedia70:

Эх... Я уже восемь лет как не желаю спиртного принимать - не интересно оно... :)

Спасибо за заботу о здоровье ;)


 Всегда пожалуйста..

 А я и не принимаю, и не только спиртного, а и .. много чего другого. Сам тему здоровья штудирую активно.

 
Operr:


Спасибо за гениальную идею!  Пробовал все что смог придумать ,но логика скрипта выше моих возможностей.

 Часовки с коєфф=1 в офлайне  всегда идентичны оригиналу, а выход где то рядом :(

 Как можно сдвинуть открытие часовой свечи в скрипте Period_converter на 10мин? Нужны ли изменения на этапе записи истории?


хм... запустите скрипт на минутках)
 

Добрый день,

 

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

 

Спасибо. 

 
Как сделать чтобы (если предыдущая сделка была на покупку) следующая открывалась на продажу? Заранее спасибо.
 
KoOr:
Как сделать чтобы (если предыдущая сделка была на покупку) следующая открывалась на продажу? Заранее спасибо.
Делаете цикл по истории. Если тип последней закрытой позиции == OP_BUY, значит открывать нужно OP_SELL
 

 Я записал вот так, всеравно открываются на покупку.

OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(OrdersTotal()==OP_BUY)
if(OrdersTotal()==0)
if(rv1a<rv1b) tiket2=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,NULL,121,0,Red);
 
KoOr:

 Я записал вот так, всеравно открываются на покупку.

if(OrdersTotal()==OP_BUY)

Тут у вас написано "если количество ордеров равно операция покупка". Что сказать хотели?
 

Не претендую на роль эксперта, сам только начал в чём-то разбираться, но такая процедура есть практически в любом советнике из CODE BASE !!!!

 

Обьявите CloseRevers   в самом начале

 extern bool    CloseRevers          = true;  

 

 

 

 // Это ставите в проверке после сигнала  но перед OrderSend

 if (CloseRevers) CLOSEORDER(OP_SELL);

 if (CloseRevers) CLOSEORDER(OP_BUY);

 

 

void CLOSEORDER(int ord)

{

   for (int i=0; i<OrdersTotal(); i++)

   {                                               

      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))   // <-----MODE_HISTORY  если сделка уже закрыта

      {

         if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)

         {

            if (OrderType()==OP_BUY && ord==OP_BUY)

               OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,CLR_NONE);

            if (OrderType()==OP_SELL && ord==OP_SELL)

               OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE);

         }

      }   

   }

 

Соответственно если у Вас уже закрытая сделка то проверяете по  MODE_HISTORY (Вместо MODE_TRADES)

 

Надеюсь, что помог.... 

 
Я сказать хотел если предыдущая сделка была на покупку, следующая открывается на продажу . Памагите правильно записать.Спасибо.
Причина обращения: