[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 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)

 

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

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