В RealTimeEmulationTrader не происходят сделки~/topic/3499/v-realtimeemulationtrader-ne-proishodyat-sdelki/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T09:18:04Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/25597/Скорее всего из за: http://stocksharp.com/forum/3448/Probliema-v-RealTimeEmulationTrader/ Но к сожал...2013-04-25T03:00:25Z2016-08-16T00:13:12ZAASorokovoyhttps://stocksharp.ru/users/6304/info@stocksharp.ruСкорее всего из за:<br /><a href="http://stocksharp.com/forum/3448/Probliema-v-RealTimeEmulationTrader/
" title="http://stocksharp.com/forum/3448/Probliema-v-RealTimeEmulationTrader/
">http://stocksharp.com/fo...ealTimeEmulationTrader/
</a><br /><br />Но к сожалению этот баг так тщательно игнорируется... [sad] Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/24789/вероятно, по этой же самой причине - http://stocksharp.com/forum/3024/Nie-rieghistriruietsia-zaiavka...2013-03-25T19:57:00Z2016-08-16T00:12:33Zakhttps://stocksharp.ru/users/26845/info@stocksharp.ruвероятно, по этой же самой причине - <a href="http://stocksharp.com/forum/3024/Nie-rieghistriruietsia-zaiavka-v-RealTimeEmulationTrader/?page=3" title="http://stocksharp.com/forum/3024/Nie-rieghistriruietsia-zaiavka-v-RealTimeEmulationTrader/?page=3">http://stocksharp.com/fo...eEmulationTrader/?page=3</a>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/25082/Экспорт стакана у вас для этого инструмента запущен?2013-04-02T08:51:04Z2013-04-02T08:51:04Zesperhttps://stocksharp.ru/users/5990/info@stocksharp.ruЭкспорт стакана у вас для этого инструмента запущен?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/25080/Вышла новая версия StockSharp. Скачал, обновил ссылки. Но проблема до сих пор не ушла. При тестирова...2013-04-02T08:24:49Z2013-04-02T08:24:49ZLipothttps://stocksharp.ru/users/16767/info@stocksharp.ruВышла новая версия StockSharp. Скачал, обновил ссылки.<br />Но проблема до сих пор не ушла.<br />При тестировании в реал-тайм заявки выставляются, но сделки не происходят.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/24799/Будем ждать. Спасибо за библиотеку.2013-03-26T08:25:05Z2013-03-26T08:25:05ZLipothttps://stocksharp.ru/users/16767/info@stocksharp.ruБудем ждать.<br /><br />Спасибо за библиотеку.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/24794/На этой неделе запланировали устранить проблему. Извиняюсь за задержку.2013-03-25T21:40:40Z2013-03-25T21:40:40ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ruНа этой неделе запланировали устранить проблему. Извиняюсь за задержку.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/24772/Специально для проверки StopLossStrategy кидаю лимитки близко к спреду. Но сделки, судя по логу, не ...2013-03-25T13:00:59Z2013-03-25T20:31:33ZLipothttps://stocksharp.ru/users/16767/info@stocksharp.ruСпециально для проверки StopLossStrategy кидаю лимитки близко к спреду. Но сделки, судя по логу, не происходят.<br />Что-то делаю не так?<br /><br />Лог файл<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:plain">
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:59:00.104 | | Правило 'Интервал 00:01:00 (0x1C4D180)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:54:53.440 | | Переход из состояния Stopped в Started.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:54:53.442 | | Стратегия запущена. [0,-1]. Позиция при старте 0.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:56:00.039 | | Правило 'Интервал 00:01:00 (0x1C4D180)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:56:00.064 | | Регистрация новой Limit (0x31AE540) заявки на Buy с ценой 9847 и объемом 1.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:56:00.112 | | Правило 'Полное исполнение 60886354/0 (0x36B20B7)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:56:00.113 | | Правило 'Отмена заявки 60886354/0 (0x283D6C)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:56:00.113 | | Правило 'Ошибка регистрации заявки 60886354/0 (0x271D65F)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:57:00.062 | | Правило 'Интервал 00:01:00 (0x1C4D180)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:57:00.063 | | Регистрация новой Limit (0xEB7DE3) заявки на Buy с ценой 9841 и объемом 1.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:57:00.064 | | Правило 'Полное исполнение 60886355/0 (0x4D82E1)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:57:00.064 | | Правило 'Отмена заявки 60886355/0 (0x86693B)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:57:00.064 | | Правило 'Ошибка регистрации заявки 60886355/0 (0x2874BB6)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:58:00.085 | | Правило 'Интервал 00:01:00 (0x1C4D180)'. Активация.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:58:00.085 | | Регистрация новой Limit (0x3F13BE6) заявки на Buy с ценой 9845 и объемом 1.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:58:00.085 | | Правило 'Полное исполнение 60886356/0 (0xCEF4B6)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:58:00.085 | | Правило 'Отмена заявки 60886356/0 (0x17B6DE0)'. Подписалось на события.
RS_SRM3@RTS_SPBFUT007r0 | 25.03.2013 16:58:00.085 | | Правило 'Ошибка регистрации заявки 60886356/0 (0xDC417)'. Подписалось на события.</pre>
</div></div><br /><br /><br /><br />Код стратегии<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
using System;
using System.Globalization;
using System.Windows;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ecng.Collections;
using Ecng.Xaml;
using StockSharp.Algo;
using StockSharp.Algo.Strategies;
using StockSharp.Algo.Candles;
using System.Threading;
using StockSharp.BusinessEntities;
namespace Spikes_Test_it
{
internal class RobotStrategy : TimeFrameStrategy
{
private readonly CandleManager _candleManager; //Менеджер свечей
private readonly CandleSeries _candleSeries; //Свечи
private DateTime _nextTime;
private decimal _delta;
private readonly decimal _deltaPercent;
private decimal _stopLoss;
private readonly decimal _stopLossPercent;
public RobotStrategy(CandleManager candleManager, CandleSeries candleSeries, decimal deltaPercent, decimal stopLossPercent, TimeSpan timeFrame)
: base(timeFrame)
{
_candleManager = candleManager;
_candleSeries = candleSeries;
_deltaPercent = deltaPercent;
_stopLossPercent = stopLossPercent;
}
/// <summary>
/// Метод вызывается тогда, когда вызвался метод <see cref="M:StockSharp.Algo.Strategies.Strategy.Start"/>, и состояние <see cref="P:StockSharp.Algo.Strategies.Strategy.ProcessState"/> перешло в значение <see cref="F:StockSharp.Algo.ProcessStates.Started"/>.
/// </summary>
protected override void OnStarted()
{
//Вычисляем время окончания текущей свечки
_nextTime = Interval.GetCandleBounds(base.Trader.GetMarketTime(Exchange.Me)).Max;
Thread.Sleep(_nextTime - base.Trader.GetMarketTime(Exchange.Me));
base.OnStarted();
}
protected override ProcessResults OnProcess()
{
//Если наша стратегия в процессе остановки
if (base.ProcessState == ProcessStates.Stopping)
{
//Отменяем активные заявки
CancelActiveOrders();
//Так как все активные заявки гарантированно были отменены, то возвращаем ProcessResults.Stop
return ProcessResults.Stop;
}
//Событие обработки торговой стратегии вызвалось в первый раз, что раньше, чем окончания текущей свечки
if (Trader.GetMarketTime(Exchange.Me) < _nextTime)
{
//Возвращаем ProcessResults.Continue, так как наш алгоритм еще не закончил свою работу, а просто ожидает следующего вызова.
return ProcessResults.Continue;
}
//Получаем сформированную свечку
var candle = _candleSeries.GetTimeFrameCandle(_nextTime-TimeFrame);
//если свечки не существует (не было ни одной сделке в тайм-фрейме), то ждем окончания следующей свечки.
if (candle == null)
{
// если прошло больше 10 секунд с момента окончания свечки, а она так и не появилась,
// значит сделок в прошедшей 5-минутке не было, и переходим на следующую свечку
if ((this.GetMarketTime() - _nextTime) > TimeSpan.FromSeconds(10))
_nextTime = TimeFrame.GetCandleBounds(Trader.GetMarketTime(Exchange.Me)).Max;
return ProcessResults.Continue;
}
_nextTime += TimeFrame;
//Создаем заявку
var order = this.CreateOrder(OrderDirections.Buy, candle.ClosePrice - 3, Volume);
//Регистрируем правило, отслеживающее появление новых сделок, осуществленных трейдером
Trader
.WhenNewMyTrades()
.Do(OnNewMyTrades)
.Apply(this);
RegisterOrder(order);
return ProcessResults.Continue;
}
protected override void OnNewMyTrades(IEnumerable<MyTrade> trades)
{
//Для каждой сделки добавляем защитную стоп-лосс стратегию
var protectiveStrategies = trades.Select(t =>
{
MessageBox.Show("Идентификатор сделки: " +
t.Trade.Id.ToString(
CultureInfo.InvariantCulture));
_stopLoss = t.Trade.Price * _stopLossPercent/100;
//Выставляем стоп-лосс 2% от цены входа
var stopLossStrategy = new AutoProtectiveStrategy
{
StopLossLevel = _stopLoss,
//TakeProfitTimeOut = TimeSpan.FromMinutes(TimeFrame.Minutes*2)
TakeProfitTimeOut = TimeSpan.FromSeconds((_nextTime+TimeFrame+TimeFrame).Second-t.Trade.Time.Second)
};
MessageBox.Show(stopLossStrategy.TakeProfitTimeOut.ToString());
return stopLossStrategy;
});
ChildStrategies.AddRange(protectiveStrategies);
base.OnNewMyTrades(trades);
}
}
}</pre>
</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024