как я решаю проблему однозначной покупки каждый бар. - страница 2

 
khorosh писал(а) >>
Насколько я понимаю, данная конструкция обеспечивает работу по ценам открытия. А если нужно обеспечить работу по тикам и обеспечить открытие только одного ордера за время одного бара, то данная конструкция не подходит?
if(условие открытия вашей позии && order_open_time!=Time[0])

{

   order_open_time=Time[0];

  //открываем ордер

}
 
Cпасибо. Думаю, что это самый экономичный способ. Я делал несколько сложнее.
 
А как же такой вариант: проверять, что Volume текущего бара == 1 и только тогда открывать позицию?
 
Daniil >>:
А как же такой вариант: проверять, что Volume текущего бара == 1 и только тогда открывать позицию?

1. Позиция будет открываться с открытием бара, что противоречит условию.

2. Вариант не самый надёжный даже для работы по ценам открытия, хотя и приемлемый.

 
А вот как я решаю проблему))
static int prevtime = 0;

int start()
{
//----
if(Time[0] == prevtime) return(0); prevtime = Time[0]; 

//тут текст программы

//----
   return(0);
}
 
meta-trader2007 >>:
А вот как я решаю проблему))

Я тоже так. Но спровоцировал обсуждение, чтобы в одном месте грамотные люди (спасибо им) обменялись мнениями.

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

 
khorosh >>:
Насколько я понимаю, данная конструкция обеспечивает работу по ценам открытия. А если нужно обеспечить работу по тикам и обеспечить открытие только одного ордера за время одного бара, то данная конструкция не подходит?

Подходит. Просто строка с 

Pbars = Bars;

должна стоять после успешного открытия позиции или после определения того, что на данном баре открывать или закрывать позици не нужно. Таким образом этих строк будет минимум три, каждая после своего условия.

 
Figar0 >>:

Да вообщем-то это и не проблема) Да не блещет ваша метода надегой, а коли пару одинаковых баров подряд?

Сравниваются разность хай-лоу текущего бара с хай-лоу предыдущего, разность текущего сохраняется, на функии сравнивается разность сохраненного текущего и текущего предыдещего

а про 2 одинаковых бара подряд:

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

 
vladevgeniy >>:

Или так))))


Или так ;)

if (Volume[0]>1) return (0);
Причина обращения: