😀 я наверное уже замучал)) Вот из этого примера http://www.stocksharp.com/doc/html/63952fce-6e43-4427-985a-1654e8d9cfc1.htm не понятно мне, сл и тп для общей позиции устанавливается? (просто когда ставим там сл и тп, мы нигде не упоминаем longPos) И есть ли где рабочий пример, так проще понять.
Комментарии (41)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Попробовал вот так.. Но ошибки показывает..
**Элемент "ChildStrategies" не существует в текущем контексте.
**Наиболее подходящий перегруженный метод для "StockSharp.Algo.Strategies.StrategyRule<System.Collections.Generic.IEnumerable<StockSharp.BusinessEntities.MyTrade>>. Do(System.Action<StockSharp.Algo.Strategies.StrategyRule<System.Collections.Generic. IEnumerable<StockSharp.BusinessEntities.MyTrade>>,System.Collections.Generic.IEnumerable<StockSharp.BusinessEntities.MyTrade>>)"
имеет несколько недопустимых аргументов
**Вместе с аргументами-типами нельзя использовать не универсальный тип "System.Collections.IEnumerable"
**Аргумент "1": преобразование типа из "группа методов" в "System.Action<StockSharp.Algo.Strategies.StrategyRule<System.Collections.Generic. IEnumerable<StockSharp.BusinessEntities.MyTrade>>,System.Collections.Generic.IEnumerable<StockSharp.BusinessEntities.MyTrade>>" невозможно
Помогите пожалуйста
Форматируйте код (значек справа от "Цитата" - "Выберите тип подсветки кода"), потому что так понять что-либо очень сложно.
Спасибо сделал вот так, а насчет логина(пароля) они реальные.. от демки правда.. А как теперь этот класс вызвать? (можно ли так)
var ord = new buy();
var ord = new buy();
У нас если что есть поддержка платная, там на подобные вопросы как раз отвечаем. Это если лень разбираться по документации и примерам.
Это выходит нужно добавить override примерно вот так, а потом он сам запустится, как вызов метода Strategy.Start произойдет? и условия для открытия уже в OpenPosition нужно добавлять, а не в programm..
просмотрев пример sma для quik. Увидел, что сначало объявляется класс SmaStrategy, а потом _strategy присваиваем саму стратегию, после уже _strategy.Start();
Но вот мне не нужны машки... как реализовать?
сделал вот так, вроде как должно работать, но ошибка ""SampleSmartConsole.Program.buy.OpenPosition()": не найден метод, пригодный для переопределения"
namespace SampleSmartConsole { using System; using System.Net; using System.Linq; using System.Threading; using System.Collections.Generic;
}
где собственно и реализован метод OpenPosition
на нечто подобное недавно наступал
сделал вот так, вроде как должно работать, но ошибка ""SampleSmartConsole.Program.buy.OpenPosition()": не найден метод, пригодный для переопределения"
В базовом классе Strategy отсутствует метод OpenPosition(), так что переопределять нечего.
В указанном примере присутствует следующая строка:
public void OpenPosition()
Модификатор override не указан.
Что значит "прога вылетает"?
Какие сообщения выводятся на консоль? Программа зациклилась? Программа завершает свою работу?
Я чуть поже попробую еще посмотреть что это может быть, щас параллельно изучаю сам язык си шарп просто =)
Чтобы окно не закрывалось, введи после trader.StopExport(); // останавливаем экспорт например, Console.WriteLine("StopExport"); Console.ReadKey(); и после Console.WriteLine(ex); например, Console.WriteLine("catch"); Console.ReadKey();
До нажатия любой клавиши окно не закроется.
на 247 строке у меня вот что
Советую хотя бы раз прочитать документацию. Количество подобных вопросов уменьшится. :) В документации и примерах есть как именно инициализировать, создавать и запускать стратегию.
А где мне искать, какой шлюз? я почитал, и в примерах шлюз создается ```csharp var trader = new SmartTrader(login, password, ip)
Для начала, в посте http://stocksharp.com/posts/m/15613/ buy _strategy = new buy(); _strategy.Start(); находятся внутри бесконечного цикла while (true)
Эачем?
Не знаю, как в последней версии программы, но по тексту в http://stocksharp.com/posts/m/15613/ не видно, чтобы вызывался метод OnStarting(), т.е. отсутствует
protected override void OnStarting()
protected ProcessResults OnProcess() тоже не было у меня.. А что то должно быть в этом OnStarting() Ниже код последней версии
И спасибо большое что помогаешь!
Почитай про событийную модель, там и пример есть http://stocksharp.com/doc/html/8c0327db-494a-4fe0-aba8-0d4b93dea60e.htm
а почему у вас в процедуре OpenPosition регистрация заявки после ожидания сделок по ней?
BigBen, Я походу разобрался! по крайней мере ошибки при запуске нету, посмотрим через пол часика, откроет ли он позицию (ну и собственно СЛ и ТП)
В общем вот так сделал
теперь выводит
на 262 строке _strategy.Start(); а 30 строка. там this из процедуры OnStarting()
Вобщем думаю что проблема с правилами для стратегии.. щас почитаю в докуметакции про правила
похоже не передали в стратегию инструмент попробуйте что-то вроде Strategy _strategy = new buy() ;
Спасибо, все получилось! выложу готовый код, вдруг кому из новеньких понадобится))
Вновь хочу вернуться к этой теме, т.к. у меня СЛ не срабатывает! (заявка то выставляется, но цена уже уша от нее.. и позиция может уйти далеко в минус!) В чем может быть ошибка? на форуме где то читал, что у кого то закрывало минус 190, когда СЛ всего 10.. а у меня не закрывает
Спасибо
Что-то ты намутил с int i. В for это переменная цикла, в if-ах принимает два значения - 0 и 1, т.е. в них это логическая переменная. Если (var objem = _position.CurrentValue) == 0, то чему равно i ? Какой из if-ов выполнится?
Насчет цикла я и не заметил, что там тоже i.. А вообще с помощью i я проверяю есть ли отложники (если есть, то 1, нет 2), а когда позиция не равна 0, то i=0 (те считаем что у нас нету отложников)
Вот это весь код программы (точнее тока 1 файл, где все происходит) Не много прокоментировал, чтобы было понятнее разбирать мой замысел весь.
Спасибо большое
Сильно не вникал, но, вероятно, самая простая ситуация:
Один из выходов - использовать котирование в StopLoss стратегии:
У меня есть открытая проблема с этим способом в Quik, http://stocksharp.com/posts/m/16132/, может в Smart'е дела обстоят лучше.
Другой - использовать свойство StopLossStrategy (точнее ProtectiveStrategy) - PriceOffset, читать тут: http://stocksharp.com/doc/html/P_StockSharp_Algo_Strategies_ProtectiveStrategy_PriceOffset.htm
Пример:
т.е. это нормально, понял😒 2ой выход думаю мониторить позицию.. логичнее будет) Спасибо, что посмотрели