ActionStrategy и QuotingStrategy

ActionStrategy и QuotingStrategy
Atom
5/3/2011
freelancer


А есть примерчики по ActionStrategy и QuotingStrategy ?
И в чём разница между ними ?

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 5/4/2011
Reply


freelancer
А есть примерчики по ActionStrategy и QuotingStrategy ?
И в чём разница между ними ?


Документацию читали?[smile]
Thanks:

freelancer

Avatar
Date: 5/8/2011
Reply


Читал. Там есть пример стратегии, но нет кода как с ней работать
Thanks:

freelancer

Avatar
Date: 5/12/2011
Reply


Товарищи ! Нужен работающий пример с использованием ActionStrategy.
Тут просят
И тут тоже

Тут маловато
Thanks:

Mikhail Sukhov

Avatar
Date: 5/12/2011
Reply


freelancer
Товарищи ! Нужен работающий пример с использованием ActionStrategy.
Тут просят
И тут тоже

Тут маловато


Вы не с того конца подходите к задаче. ActionStrategy - это понимание работы делегатов в .NET. Лямбда выражений. Поймете их, поймете и ActionStrategy, потому что это производная вещь. Вот код хедж стратегии:

Code
/// <summary>
/// Метод вызывается тогда, когда вызвался метод <see cref="Strategy.Start"/>,
/// но состояние процесса <see cref="Strategy.ProcessState"/> еще не перешло в значение <see cref="StrategyProcessStates.Runned"/>.
/// </summary>
protected override void OnRunning()
{
    base
        .When(_tradingStrategy.StrategyNewMyTrades())
        .Do(ReHedge)
        .MakePeriodical();

    base
        .When(base.Security.Changed())
        .Do(ReHedge)
        .MakePeriodical();

    base.OnRunning();
}

private void ReHedge()
{
    var futurePosition = _tradingStrategy.ChildStrategies.SyncGet(c =>
            (from strategy in c
             let option = strategy.Security
             select (option.Delta(option.Volatility / 100m)) * strategy.PositionManager.Position).Sum());

    AddInfoLog("Дельта позиции {0}.", futurePosition);

    var diff = (int)futurePosition - (int)base.PositionManager.Position;

    if (diff != 0)
    {
        var order = CreateOrder(diff > 0 ? OrderDirections.Buy : OrderDirections.Sell, 0, diff);
        ChildStrategies.Add(CreateQuoting(order));
    }
}
Thanks:

freelancer

Avatar
Date: 5/13/2011
Reply


Спасибо.
Ну вот не работает и всё. Даже When(() => true)
Thanks:

Mikhail Sukhov

Avatar
Date: 5/14/2011
Reply


freelancer
Спасибо.
Ну вот не работает и всё. Даже When(() => true)


Чуть подробнее.
Thanks:

freelancer

Avatar
Date: 5/14/2011
Reply


Code
class GAStrategy : ActionStrategy
{
    protected override void OnRunning()
    {
     When(() => true).
     Do(() =>
     {
     AddLog(StrategyErrorStates.None, base.Security.LastTrade.Time.ToString(), null);
     }).
     MakePeriodical(); // сделать событие периодичным
    
     base.OnRunning();
    }
}

Code
_strategy = new GAStrategy() { Volume = NumberContracts, Security = _sec, Interval = TimeSpan.FromMinutes(2) };
_strategy.Log += OnLog;
_strategy.NewOrder += OnNewOrder;
_strategy.PropertyChanged += OnStrategyPropertyChanged;

_manager.Register(_strategy, portfoliosComboBox.SelectedPortfolio, _sec);

_candleManager.RegisterTimeFrameCandles(_sec, _timeFrame);

FileStrategyLogger fileLogger = new FileStrategyLogger("log.txt");

fileLogger.Strategies.Add(_strategy);

_trader.RegisterQuotes(_strategy.Security);
_trader.RegisterSecurity(_strategy.Security);
_strategy.Start();

И ничего не происходит (в логе только "Стратегия запущена")
Thanks:

Mikhail Sukhov

Avatar
Date: 5/14/2011
Reply


События активизируются в зависимости от интервала стратегии.
Thanks:

freelancer

Avatar
Date: 5/14/2011
Reply


Я ставил 2 мин. И ждал...
Thanks:

Mikhail Sukhov

Avatar
Date: 5/14/2011
Reply


freelancer
Я ставил 2 мин. И ждал...


Уберите инициализацию интервала.
Thanks:
1 2  >

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

loading
clippy