😀 я наверное уже замучал)) Вот из этого примера http://www.stocksharp.com/doc/html/63952fce-6e43-4427-985a-1654e8d9cfc1.htm не понятно мне, сл и тп для общей позиции устанавливается? (просто когда ставим там сл и тп, мы нигде не упоминаем longPos) И есть ли где рабочий пример, так проще понять.
Kommentare (41)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Попробовал вот так.. Но ошибки показывает..
**Элемент "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ой выход думаю мониторить позицию.. логичнее будет) Спасибо, что посмотрели