ActionStrategy и QuotingStrategy
Atom
03.05.2011
freelancer


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

Теги:


Спасибо:


1 2  >
Mikhail Sukhov

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


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


Документацию читали?[smile]
Спасибо:

freelancer

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


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

freelancer

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


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

Тут маловато
Спасибо:

Mikhail Sukhov

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


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

Тут маловато


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

Код
/// <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));
    }
}
Спасибо:

freelancer

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


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

Mikhail Sukhov

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


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


Чуть подробнее.
Спасибо:

freelancer

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


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

Код
_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();

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

Mikhail Sukhov

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


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

freelancer

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


Я ставил 2 мин. И ждал...
Спасибо:

Mikhail Sukhov

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


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


Уберите инициализацию интервала.
Спасибо:
1 2  >

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

loading
clippy