Прошу помощи: реализация stop и limit приказов, как они понимаются в WLD


Прошу помощи: реализация stop и limit приказов, как они понимаются в WLD
Atom
26.10.2011


Приветствую!

Я делаю первые шаги в освоении S# (в C++ и C# ориентируюсь), прошу помочь с вопросом, который может быть элементарным. Есть код для WLD3, который иллюстрирует использование stop и limit приказов, его нужно реализовать под S#:

Код

var nPeriod: integer  = 3;
var setEntry: integer = #Low;
var serExit: integer  = #High;

var Bar: integer;
for Bar := nPeriod to BarCount() - 1 do
begin
    if not LastPositionActive() then
    begin
        var fEnterLimitPrice: float = Highest(Bar, setEntry, nPeriod);
        BuyAtLimit(Bar + 1, fEnterLimitPrice, 'Enter');
    end
    else
    begin
        var fExitStopPrice: float = Lowest(Bar, serExit, nPeriod);
        SellAtStop(Bar + 1, fExitStopPrice, LastPosition(), 'Exit');
    end;
end;


Пример со скользящей средней я смотрел, как на его основе сделать нужное не понял. Большая просьба к авторам библиотеки и ко всем, кто тайное знание уже постиг: не могли бы вы продемонстрировать, как логика, реализованная выше, должна выглядеть при использовании S# ? Мне кажется, что портирование такого кода под S# можно использовать как ещё один пример, включаемый в поставку библиотеки, поскольку на логическом скелете этого кода (перебор баров, ветки "если есть поза" и "если нет позы", стоп и лимт приказы) строится львиная доля систем, реализуемых в пакетах теханализа.

Заранее благодарен.

Теги:


Спасибо:


< 1 2 
Alexander

Фотография
Дата: 26.10.2011
Ответить


Supervisor Перейти
Romant Перейти

Вопрос первый: как выставить в квик stop и limit ордера, чтобы они в квике отработали так же, как они работают при симуляции в WLD3 ? В WLD3 это работает так:

BuyAtLimit(Bar, Price) - купить бумагу по цене, меньшей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.
BuyAtStop(Bar, Price) - купить бумагу по цене, большей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.

Условно для BuyAtLimit(Bar, Price):
Код

var order = new Order
{
Portfolio = _portfolio,
Price = _price,
Security = _security,
Volume = 1,
Direction = OrderDirections.Buy,
CancelTime = _currentTime + _timeframe,
};
trader.RegisterOrder(order);

Для BuyAtStop несколько хитрее.


только ExpiryDate, а не CancelTime
Спасибо:

frontman

Фотография
Дата: 26.10.2011
Ответить


[biggrin]
Спасибо:

Romant

Фотография
Дата: 26.10.2011
Ответить


to Supervisor: большое спасибо.

Александр, не могли бы Вы точнее указать, где именно в архиве библиотеки можно посмотреть на пример выставления стоп-заявок ? А равно и лимтиных заявок, если такой пример есть.
Спасибо:

esper

Фотография
Дата: 26.10.2011
Ответить


Стоп заявки тут. Лимитные есть в SampleSMA.
Спасибо:

Alexander

Фотография
Дата: 26.10.2011
Ответить


Romant Перейти
to Supervisor: большое спасибо.

Александр, не могли бы Вы точнее указать, где именно в архиве библиотеки можно посмотреть на пример выставления стоп-заявок ? А равно и лимтиных заявок, если такой пример есть.


Quik\Sample
NewOrderWindow.xaml.cs и NewStopOrderWindow.xaml.cs
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy