Евгений
|
Дата: 03.06.2011
Хелп ми плиз
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 03.06.2011
Есть стратегия на S#, которая работает только при наличие стакана. Стакан отсутствует. Но торговать все равно хотите. Вывод, или вам нужна другая стратегия, или доводите до ума эта. OnProcess правильно переопределили. Видимо нужно что-то еще.
|
|
Спасибо:
|
|
|
|
|
InsiderHSE
|
Дата: 03.06.2011
Думаю можно попробовать отнаследоваться от защитной стратегии и точно так же переопределить OnProcess
|
|
Спасибо:
|
|
|
|
|
Евгений
|
Дата: 06.06.2011
InsiderHSE Думаю можно попробовать отнаследоваться от защитной стратегии и точно так же переопределить OnProcess Спасибо, я так и сделал, тестирую
|
|
Спасибо:
|
|
|
|
|
Евгений
|
Дата: 14.07.2011
А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал.
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 15.07.2011
Евгений А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал.
Через When \ Do в When - указывайте время когда не хотите чтобы ваша стратегия работала + у Trader есть событие MarketTimeChanged
|
|
Спасибо:
|
|
|
|
|
Евгений
|
Дата: 19.07.2011
Alexander Евгений А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал.
Через When \ Do в When - указывайте время когда не хотите чтобы ваша стратегия работала + у Trader есть событие MarketTimeChanged А как через MarketTimeChanged можно? Мой вариант не работает, потому что коллекция ChildStrategies изменяется во время проверки Код
_trader.MarketTimeChanged += () => this.GuiAsync(() =>
{
if (_strategy != null)
{
if (_strategy.ChildStrategies.Count != 0)
if (_security.Exchange.IsTradeTime(_trader.MarketTime) == false)
{
foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Runned))
s.Stop();
}
else
foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Stopped))
s.Start();
}
});
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 20.07.2011
Евгений Alexander Евгений А как задать время работы защитных стратегий в версии 3.2.5? До этого я переопределял OnProcess и там указывал.
Через When \ Do в When - указывайте время когда не хотите чтобы ваша стратегия работала + у Trader есть событие MarketTimeChanged А как через MarketTimeChanged можно? Мой вариант не работает, потому что коллекция ChildStrategies изменяется во время проверки Код
_trader.MarketTimeChanged += () => this.GuiAsync(() =>
{
if (_strategy != null)
{
if (_strategy.ChildStrategies.Count != 0)
if (_security.Exchange.IsTradeTime(_trader.MarketTime) == false)
{
foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Runned))
s.Stop();
}
else
foreach (var s in this._strategy.ChildStrategies.Where(s => s.ProcessState == StrategyProcessStates.Stopped))
s.Start();
}
});
копируйте прежде чем использовать, либо сделайте лок
|
|
|
|
|
Евгений
|
Дата: 17.08.2011
|
|
|
|
Возникает ошибка при логировании Код
for (int i = 0; i < base.ChildStrategies.Count; i++)
{
[h]AddLog(StrategyErrorStates.None, "Удаление стратегии {0}", base.ChildStrategies[i].Name);[/h]
base.ChildStrategies.RemoveAt(i);
}
Цитата:System.NotSupportedException не обработано пользовательским кодом Message=Указанный метод не поддерживается. Source=Ecng.Collections StackTrace: в Ecng.Collections.SynchronizedSet`1.System.Collections.Generic.IList<T>.get_Item(Int32 index) в Ecng.Collections.BaseCollection`1.get_Item(Int32 index) в SampleSma.SmaStrategy.OnNewMyTrades(IEnumerable`1 trades) в D:\StockSharp_3.2.7_Sources\SmaStrategy.cs:строка 217 в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.Strategies.Strategy.#=qXQcTzmM0UE1f5yIY2j5kaA==(IEnumerable`1 #=qM5HbaFnvCFi7rkUr5cbHdQ==) в StockSharp.Algo.Strategies.Strategy.#=qM0$gqkXG3MPOkX0bnBfw2A==(IEnumerable`1 #=qL4wEoMHRTP$ON_GriBYYEA==) в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qPIAOBkVt1MhD9DGmazWqFXVeVjc6WER7AoUQ0gK7Sec=(IEnumerable`1 #=qWC4Z1rz_RGQAUzeSh1Cphw==) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.Testing.MarketEmulator.RaiseNewMyTrades(IEnumerable`1 trades) в StockSharp.Algo.Testing.MarketEmulator.#=q2J23UVF1zXonLRlbjK309w==(Order #=q0wnjY82As$lGM3$R70XXZA==, Int32 #=qri0DP6B4pNy7fx3oHmxVqA==, Decimal #=quoai2hjCHpHfZ1q8j3z$ew==) в StockSharp.Algo.Testing.MarketEmulator.#=qE7E7qt9g1c47ZkBqOFQjyQFedGLvvuLEiZjEuWXdWe8=(MarketDepth #=qtMm0MpCgzrjyUmIY37DQGQ==, Order #=qN7KRs9k9LSYRBZ6MhxRoHA==, Quote #=qN7Znv2zz9zpDeRNGHg_Wow==, Boolean #=qreLQ9GB8WhUEds76X0M828yCTL2n9cda$8T1MfjlO18=) в StockSharp.Algo.Testing.MarketEmulator.#=qUkyP0_M9OMEy$SkKYfYJOtahWlDktGcqM5WL10p_80s=(Order #=qghTCyYil3z9plTAIH0h7ZQ==, MarketDepth #=qLR63QCgY7j2YwdM8UiJ_RA==) в StockSharp.Algo.Testing.MarketEmulator.#=qtVjIJmyUftYFmfFY5O4f0g==(SynchronizedDictionary`2 #=q9J8oLVIQhe2_0P3XQ18a7Q==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action`1 action) в StockSharp.Algo.Testing.MarketEmulator.#=qcAGUpJziDHjwYUgUkdFL0g==() в StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(IEnumerable`1 marketDepths) в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=q0xtw_MzKkmFKPWfyFMG2VeXM$PE6NDpWY9PTT7IQgHE=(IEnumerable`1 #=qa1P$uiol4QhZBoQzjZJhMw==) в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.BaseTrader.#=qifrQr7se$_OPI_WBxefq0RZ$hXHpoMKbn3PHl9eAJYM=.#=qq46wFSKy$Z5naYx_yW1qIw==(IEnumerable`1 #=q_TiYF80HDzj2r9IIRRL14g==) InnerException:
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 17.08.2011
|
|
|
|
Евгений Возникает ошибка при логировании Код
for (int i = 0; i < base.ChildStrategies.Count; i++)
{
[h]AddLog(StrategyErrorStates.None, "Удаление стратегии {0}", base.ChildStrategies[i].Name);[/h]
base.ChildStrategies.RemoveAt(i);
}
Цитата:System.NotSupportedException не обработано пользовательским кодом Message=Указанный метод не поддерживается. Source=Ecng.Collections StackTrace: в Ecng.Collections.SynchronizedSet`1.System.Collections.Generic.IList<T>.get_Item(Int32 index) в Ecng.Collections.BaseCollection`1.get_Item(Int32 index) в SampleSma.SmaStrategy.OnNewMyTrades(IEnumerable`1 trades) в D:\StockSharp_3.2.7_Sources\SmaStrategy.cs:строка 217 в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.Strategies.Strategy.#=qXQcTzmM0UE1f5yIY2j5kaA==(IEnumerable`1 #=qM5HbaFnvCFi7rkUr5cbHdQ==) в StockSharp.Algo.Strategies.Strategy.#=qM0$gqkXG3MPOkX0bnBfw2A==(IEnumerable`1 #=qL4wEoMHRTP$ON_GriBYYEA==) в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qPIAOBkVt1MhD9DGmazWqFXVeVjc6WER7AoUQ0gK7Sec=(IEnumerable`1 #=qWC4Z1rz_RGQAUzeSh1Cphw==) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.Testing.MarketEmulator.RaiseNewMyTrades(IEnumerable`1 trades) в StockSharp.Algo.Testing.MarketEmulator.#=q2J23UVF1zXonLRlbjK309w==(Order #=q0wnjY82As$lGM3$R70XXZA==, Int32 #=qri0DP6B4pNy7fx3oHmxVqA==, Decimal #=quoai2hjCHpHfZ1q8j3z$ew==) в StockSharp.Algo.Testing.MarketEmulator.#=qE7E7qt9g1c47ZkBqOFQjyQFedGLvvuLEiZjEuWXdWe8=(MarketDepth #=qtMm0MpCgzrjyUmIY37DQGQ==, Order #=qN7KRs9k9LSYRBZ6MhxRoHA==, Quote #=qN7Znv2zz9zpDeRNGHg_Wow==, Boolean #=qreLQ9GB8WhUEds76X0M828yCTL2n9cda$8T1MfjlO18=) в StockSharp.Algo.Testing.MarketEmulator.#=qUkyP0_M9OMEy$SkKYfYJOtahWlDktGcqM5WL10p_80s=(Order #=qghTCyYil3z9plTAIH0h7ZQ==, MarketDepth #=qLR63QCgY7j2YwdM8UiJ_RA==) в StockSharp.Algo.Testing.MarketEmulator.#=qtVjIJmyUftYFmfFY5O4f0g==(SynchronizedDictionary`2 #=q9J8oLVIQhe2_0P3XQ18a7Q==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action`1 action) в StockSharp.Algo.Testing.MarketEmulator.#=qcAGUpJziDHjwYUgUkdFL0g==() в StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(IEnumerable`1 marketDepths) в StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=q0xtw_MzKkmFKPWfyFMG2VeXM$PE6NDpWY9PTT7IQgHE=(IEnumerable`1 #=qa1P$uiol4QhZBoQzjZJhMw==) в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в StockSharp.Algo.BaseTrader.#=qifrQr7se$_OPI_WBxefq0RZ$hXHpoMKbn3PHl9eAJYM=.#=qq46wFSKy$Z5naYx_yW1qIw==(IEnumerable`1 #=q_TiYF80HDzj2r9IIRRL14g==) InnerException: А судя по стэктрэйсу - ошибка вовсе не при логировании: Цитата:в Ecng.Collections.SynchronizedSet`1.System.Collections.Generic.IList<T>.get_Item(Int32 index) в Ecng.Collections.BaseCollection`1.get_Item(Int32 index) в SampleSma.SmaStrategy.OnNewMyTrades(IEnumerable`1 trades) в D:\StockSharp_3.2.7_Sources\SmaStrategy.cs:строка 217 судя по всему - это что-то ваше, внутреннее. в исходниках в SmaStrategy.cs заметно меньше строчек :)
|
|
Спасибо:
|
|
|
|