Определение начала следующей свечи

Образцы, куски исходников, вопросы. Обсуждаем программирование.
Ответить
Сообщение
Автор
Smile
Сообщения: 27
Зарегистрирован: Вт авг 08, 2006 1:06 pm

Определение начала следующей свечи

#1 Сообщение Smile » Ср авг 09, 2006 1:27 pm

var
OpenTime: TDateTime;

в процедуре:

if OpenTime<>Time(0) then
begin
SendInstantOrder(Symbol,ot_Sell,LotSize, Loss, 0, OrderHandle);
OpenTime:=Time(0);
end;
Последний раз редактировалось Smile Чт авг 10, 2006 12:53 pm, всего редактировалось 1 раз.

Аватара пользователя
Terranin
Site Admin
Сообщения: 846
Зарегистрирован: Вс июл 23, 2006 12:01 pm

#2 Сообщение Terranin » Ср авг 09, 2006 8:44 pm

Лучше назвать "определение начала следующей свечи".

Лирическое отступление:

Стратегия может работать одновременно по всем валютам и по всем таймфреймам. Это означает что в стратегию приходят тики от всех валют и если стратегия работает только по одной она должна делать проверку на соответствие заданной валюте (при входе в процедуру уже установлены предопределеные переменные дающие информацию по тику Symbol, Bid, Ask):

Код: Выделить всё

var
  OurCurrency: PChar;

...

  if OurCurrency <> Symbol then 
    exit;
Далее если мы работаем по какому-то конкретному таймфрейму мы должны установить валюту и таймфрейм:

Код: Выделить всё

SetCurrencyAndTimeframe(OurCurrency, PERIOD_M15);
Мы можем сменить валюту и таймфрейм в любой момент по ходу исполнения программы чтобы получить доступ к другим данным. Теперь мы можем обращаться к массивам баров. Например чтобы определить что появился новый бар:

Код: Выделить всё

var
  LastTime: TDateTime;

  // проверка что изменилось время последнего бара в нужном
  // таймфрейме
  if Time(0) <> LastTime then 
    begin
      ....
      LastTime := Time(0);
    end;

Smile
Сообщения: 27
Зарегистрирован: Вт авг 08, 2006 1:06 pm

#3 Сообщение Smile » Чт авг 10, 2006 12:53 pm

Уже назвал :D

Ответить