Вот пытаюсь переписать код грамотно, создать отдельный Stratagy.cs, где будет сама стратегия, но не получается.. Вызывал, вызывал эту стратегию, проверял все ли данные получаю (портфель, инструмент, стакан и тп..) все нормально слава Богу))
Подскажите пожалуйста, как из другого класса вызвать окошко с ошибкой ```csharp MessageBox.Show(this, "тра та та");
И посмотрите пожалуйста кто нить, в чем же ошибка может быть, там всего путь поменять, да счет)) версия последняя 4.0.20 и терменал квик
Kommentare (31)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
кстати, 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е недели пытался понять, что такое у меня с кодом...😀