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

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


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

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

Code

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# можно использовать как ещё один пример, включаемый в поставку библиотеки, поскольку на логическом скелете этого кода (перебор баров, ветки "если есть поза" и "если нет позы", стоп и лимт приказы) строится львиная доля систем, реализуемых в пакетах теханализа.

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

Tags:


Thanks:


< 1 2 
Alexander

Avatar
Date: 10/26/2011
Reply


Supervisor
Romant

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

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

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

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

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


только ExpiryDate, а не CancelTime
Thanks:

frontman

Avatar
Date: 10/26/2011
Reply


[biggrin]
Thanks:

Romant

Avatar
Date: 10/26/2011
Reply


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

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

esper

Avatar
Date: 10/26/2011
Reply


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

Alexander

Avatar
Date: 10/26/2011
Reply


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

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


Quik\Sample
NewOrderWindow.xaml.cs и NewStopOrderWindow.xaml.cs
Thanks:
< 1 2 

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy