Вот пытаюсь переписать код грамотно, создать отдельный Stratagy.cs, где будет сама стратегия, но не получается.. Вызывал, вызывал эту стратегию, проверял все ли данные получаю (портфель, инструмент, стакан и тп..) все нормально слава Богу))
Подскажите пожалуйста, как из другого класса вызвать окошко с ошибкой ```csharp MessageBox.Show(this, "тра та та");
И посмотрите пожалуйста кто нить, в чем же ошибка может быть, там всего путь поменять, да счет)) версия последняя 4.0.20 и терменал квик
Comentarios (31)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
кстати, 4.0.20 выходит не последняя версия)) надо 4.1 попробовать
Не надо MessageBox. Почитайте про логирование: http://stocksharp.com/doc/html/82437493-cd53-41eb-b756-d913af0f4f8e.htm Оно вам всё равно понадобится
Тыкал тыкал я и натыкал вот такой код
ничего не происходило => проблемы со стаканом, он не обновляется.. и функция str() вовсе не вызыватся.
после чего я сделал вот так
и у меня огромная ошибка
namespace Sample { class NewStrategy : Strategy { private static MarketDepth _marketDepth; private static Position _position;
}
1.Где вызывается стакан? Не видно метода Trader.RegisterQuotes(Security) или Trader.GetMarketDepth(security). Странно, что ошибка в 90 строке файла strategy, а у вас всего их 86) Посмотрите, что у вас с Security, как вы создаете стратегию, вообще передаете Security из главного окна в стратегию.
Желательно выложить весь проект, тогда будет видно что откуда берется.
P.S.Не работал с квиком никогда, может быть проблема в настройках таблиц? Из за этого допустим стакан не получаете.
4.0.20 - последняя final версия. 4.1 в процессе разработки находится, там прилично изменений. Лучше работайте с 4.0.20, на 4.1 у вас ещё больше вопросов возникнет.
Начните с самого простого варианта: оставьте только OnStarting, посмотрите что у вас с Security, вызовите из этого же метода стакан,.. Еще рекомендую поискать на форуме, куча рабочих вариантов основ стратегий
Весь проект выше выложен, стакан надо вызывать до старта стратегии? если да, то думаю в этом и ошибка)
А про примеры, там все примеры с машками, а мне со стаканом надо бы, вот и пытаюсь сделать.
Спасибо, за ответы, буду дальше делать
Вот одно дело я сделал))) получил вроде как грамотный код, те уже более понятный для гуру. Теперь я попытался его перенести в пример тестирования по истории! Но у меня ничего не вышло, помогите пожалуйста разобраться. Саму стратегию думаю нету смысла выкладывать, тк она явно рабочая.
а вот это файлик MainWondow
1ое что я заметил, так это ```csharp var timeFrame = TimeSpan.FromMinutes(5);
как соб-но стакан в истории может обновляться раз в сек, если у меня история стаканов...
Подскажите пожалуйста)))
2.У вас прям вся история стакана? В тестировании стакан генерируется сам, вот вы и задаете частоту, с какой он будет обновляться
те var timeFrame = TimeSpan.FromMinutes(5); вовсе убрать могу
Да вроде как вся(я за сутки хочу прогнать, тк у меня нету еще истории за месяц и более)
Залил истоию + прогу. http://zalil.ru/32853166 пароль "stocksharp" Ошибка сейчас, прикпрепил скрин
Решил начать с малого, сначало просто добиться открытия позиции в 1 сторону в OnStarting() и получился у меня вот такой код
MainWindow
и код стратегии
Ну и в общем цена не может быть равна 0 у order.. Как я понял у меня вообще ни 1 цены нету.. Скрины ниже
И кстати, это уже 4,0,21 версия (все что выше я пробовал на 20)
Выведете, чему равна цена ,по которой ставите заявку.
Сделал вот так
Получаю вот это (скрин внизу)
Как раз на MessageBox.Show("цена " + Security.BestAsk.Price);
Вторая картинка у меня не открывалась.
Очевидно что ошибка из-за того что BestAsk = null
Не запускаете экспорт стакана. Читайте документацию внимательнее.
Вот запуск экспорта стакана, после _trader.StartExport();
А экспорт успевает запуститься? Может стоит хотя бы проверку вставить да, к примеру, каждый вызов OnProcess в TimeFrame стратегии проверять стакан?
У вас не успевает, могу вам сразу сказать. Раз бид = null
Я вам всячески рекомендую либо записаться к нам на курсы, либо воспользоваться услугой поддержки. А то так можно очень долго выяснять подобные мелочи, и в итоге на каком-то шаге сдаться, потратив слишком много времени и сил впустую.
Вариант как сделать я вам написал выше. Выше дело принимать его или делать по-своему.
Экспорт стакана надо запустить перед запуском эмуляции или после? И если перед, то проверку перед запуском проводить? а после уже запускать.. или как?
Ответьте пожалуйста, спасибо
Сделал вот так.. Все равно не получается, стакан не появляется ((((
Добавил событие появления новых инструментов и выяснил что они появляются сразу, без запуска эмуляции
Может где баг какой?
_trader.QuotesChanged ни разу не срабатывает.. Стратегия даже не запускается и следовательно стакан = null.. Попробую на какой нить старой версии, может заработает
Увы, но с QuotesChanged тоже самое на 3.1, похоже у меня руки кривые 😀 выложите кто нибудь рабочий пример со стаканом пожалуйста😳
Смотрите примеры из архива
Взял оригинальный SampleHistoryTesting, заменил в нем SmaStrategy на вашу стратегию - NewStrategy
Поменял инструмент и дату тестирования
Поставил обновление стакана раз в 10 сек. т.к. при 1 сек. тестер перешел в пошаговый режим.😀
Подправил создание стратегии
Больше ничего не менял. Пуск!
До конца теста ждать не стал.
Полный код на на всякий случай
Ошибка моя была в том, что я указывал путь до папки RIH2@RTS, а не той, в которой лежит RIH2@RTS... 2е недели пытался понять, что такое у меня с кодом...😀