Как открывать разное количество позиций в Wealth-Lab и при этом их закрывать. В приложенном скрине показал что они открываются, но не закрываются. Покупаю так "BuyAtClose(bar, "Group1|");"
ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.
Закрываю так
if (IsLastPositionActive)
{
Position p = LastPosition;
if (p.EntrySignal.Contains(«Group1|»))
{
{
SellAtClose(bar, p, «Group1»);
}
}
закрывается только одна позиция.
Стоит торговля на один контракт.
При выборе режима велс скрипт оверрайд вообще не покупает. Видимо нужно указывать объем покупок в «BuyAtClose(bar, „Group1|“);», но не знаю как
Насколько помню, каждую позицию надо закрывать отдельно, тут не так, что вошел на 1 контракт, добрал ещё 1, добрал ещё 1, потом в противоположную одной сделкой на 3 и всё закрыл. Когда добираешься — формируется новая отдельная позиция, и её каждую надо и закрывать. Как на форексе в метратрейдере)). Должен быть объект для списка позиций по идее.
kvazar, А ты в самом велсе кодишь, или студию подключил?
Не знаешь случайно — я создаю дополнительный класс в коде стратегии, но он не видит, велсовские объекты, типа High и все прочие, хотя основной класс стратегии видит их без проблем, не в курсе?)
kvazar, Ну это уж ты давай сам)), погугли), это оператор цикла, чтобы бегать по элементам списков, массивов и прочим подобным, честно не помню как оно применительно к ActivePositions, но по сути оператора — он должен здесь подойти.
Replikant_mih, прочитал про него, не пойдет. тут вопрос в другом. а этот оператор мне удобней заменять привычным if-else. Вопрос, как в велсе реализовать несколько покупок и потом все продать. думаю дело в режиме торговли программы, но пока не понятно как торговать в другом
Не знаю их устройства синтаксиса, но из общих соображений называл бы каждую открываемую позицию по-разному: p1, p2 и т. д. А затем закрывал бы по имени. Если такое тут допускается.
if (IsLastPositionActive)
{
Position p = LastPosition;
if (p.EntrySignal.Contains(«Group1|»))
{
{
SellAtClose(bar, p, «Group1»);
}
}
закрывается только одна позиция.
Стоит торговля на один контракт.
При выборе режима велс скрипт оверрайд вообще не покупает. Видимо нужно указывать объем покупок в «BuyAtClose(bar, „Group1|“);», но не знаю как
если вы хотите закрыть все открытые позиции, если опять же я правильно понимаю чего вы хотите, то возможно вам необходимо это:
for(int _pos = ActivePositions.Count — 1; _pos >= 0; _pos--)
{
Position p = ActivePositions[_pos];
SellAtClose(bar, p, «Group1»);
}
kvazar, А ты в самом велсе кодишь, или студию подключил?
Не знаешь случайно — я создаю дополнительный класс в коде стратегии, но он не видит, велсовские объекты, типа High и все прочие, хотя основной класс стратегии видит их без проблем, не в курсе?)
kvazar,
Вот пример из WL Pro:
www.fidelity.com/bin-public/060_www_fidelity_com/documents/wlp_programming_guide.pdf
стр. 65
Только зарегистрированные и авторизованные пользователи могут оставлять ответы.
Залогиниться
Зарегистрироваться