Автор: Николай Камынин
Когда я моделирую торговые алгоритмы, то чаще использую рыночные цены.
Однако, в Амиброкере можно смоделировать и лимитированный ордер.
Вот один из вариантов моделирования сделки по заданной цене:
Допустим, мы хотим купить или продать по цене Price , определенной в момент i,
Для совершения сделки со следующего бара, надо в цикле с начала
установить условие исполнения сделки, а затем определить цену Price :
Примерно так:
В начале программы
Price=0; //начальное условие цена сделки равна нулю, если заявки нет
….
В цикле пишем условие совершения сделки следующим образом:
Buy[i]=Buy[i-1]; Sell[i]=Sell[i-1]; BuyPrice[i]=BuyPrice[i-1]; SellPrice[i]=SellPrice[i-1];
if ( Price>=Low[i] AND High[i]>=Price AND Buy[i]==0 ) { Buy[i]=1; BuyPrice[i]=Price; Price=0; Sell[i]=0; } //покупка
if ( Price>=Low[i] AND High[i]>=Price AND Sell[i]==0 ) { Sell[i]=1; SellPrice[i]=Price; Price=0; Buy[i]=0; } //продажа
Таким образом, если указанная Вами цена сделки попадает в диапазон
свечи, то сделка исполнится по заданной цене Price.
Далее следует правило определения цены Price
Таким образом, сделка всегда будет совершаться на следующем баре после
формирования заявки на сделку, т.е. установки Price.
Более сложный алгоритм предполагает учет объема свечи.
~~~~~~~~~~~~~~~~~~~~~~
В предыдущей заметке я несколько неточно описал возможности амиброкера, указав на возможность моделирования сделки по рыночной цене.