Программирование в Easy Language
Опубликовано вс, 2010-01-17 12:27 пользователем yurikon
Форумы:
В данной теме обсуждаются всевозможные вопросы, связанные с программированием на языке Easy Language.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
TradeStation 8
Easy Language в TradeStation 8 отличается от 2000-ой.
А толкового описания не могу найти.
В принципе при импорте перевод происходит автоматически и все нормально работает.
Поэтому пока быстрее написать на старой версии и потом импортировать в 8-ку.
Но это не совсем правильно, у TradeStation 8 возможностей побольше и она заметно быстрее.
Если есть информация по Easy Language в TradeStation 8 буду очень благодарен.
Я сижу на 2000i
Я сижу на 2000i, так что сорри, ничем не могу помочь.
Учебник по EL
Здравствуйте. Порекомендуйте, пожалуйста хороший учебник по EL
Лучший мануал
Добрый день!
Самый лучший мануал по изи - это уроки konkopa.
Посмотрите здесь
http://konkop.narod.ru/likbez.htm
С уважением,
Юрий.
Нужна помощь
Здравствуйте. Я еще новичок в EL, нужна помощь. Нужно создать счетчик, который бы счетал количество сделок в 1 баре любого таймфрейма, после того как бар закрылся счетчик сбрасывается и с 0 начинает считать на новом баре. Я думал это сделать используя WHILE, но не хватает знаний. HELP PLEASE)
Количество сделок на одном
Количество сделок на одном баре можно узнать только на следующем баре :-))). Для этого можно использовать функцию TotalTrades, сравнив ее на разных барах.
Юрий.
Создание ценового уровня для входа.
Имеем следующую ситуацию - сработал сигнал на продажу по условуию, а затем позиция закрыласть по стопу (ExitLong) или по безубытку (SetBreakEven). Как прописать в коде, что бы я опять смог открыть короткую позицию по цене предыдущего входа, в случае движения цены в низ?
Попробуйте что-нибудь вроде
Попробуйте что-нибудь вроде
SELL at EntryPrice(1) STOP;
Отмена ордера в момент закрытия бара
Здравствуйте! Подскажите пожалуйста, как сделать чтобы несработавшие ордера не отменялись по закрытию бара, а оставались активными до отмены?
Здравствуйте Григорий, омега
Здравствуйте Григорий, омега на каждой новой свечке снимает все предыдущие заявки, так что никак
Выписка из инструкции по программированию на EL
Здравствуйте.
"...отменяется, если ордер не выполнен к моменту закрытия бара. Есть одно исключение к этому правилу: в том случае, когда торговая стратегия размещает точно такой же ордер на двух или более последовательных барах. В этом случае TradeStation не будет отменять ордер, чтобы заменить его точным дубликатом. Вместо этого она оставляет ордер активным до тех пор, пока он не исполнится или не изменится."
"Когда Вы работаете с внутридневными диаграммами, то Вы можете написать приказы только для этого дня (ордера, которые отменяются в конце дня), которые размещают один и тот же самый ордер неоднократно в течение дня, как только это находят точку входа."
Как это использовать?
активные до отмены ордера
Если Вы хотите, чтобы ордера оставались активными до отмены, Вам необходимо дублировать ордер на каждом баре. Как и написано в инструкции, если ордер не исполнился на текущем баре, цена не дошла например, то если на следующий бар вы выставите точно такой же ордер (совершенно идентичный не исполнившемуся ранее), то ордер не будет заменен в системе, а будет условно считаться перенесенным на следующий бар. При реализации стратегии, введите условие на снятие ордера, можете прописать его как отдельную функцию, возвращающую значения true\falce и вызывайте ее на каждом последующем баре,после бара с неисполненным ордером. Если ваша условие на отмену не исполнилось,выставляйте снова тот же ордер, если исполнилось - не выставляйте.
пример
Спасибо Oxana, вот если бы еще пример, как это написать...
Awesome Oscillator
_____________________
INPUTS: Price((H+L)/2);
Vars: AO(0);
Value1=Average(Price,5);
Value2=Average(Price,34);
AO=Value1-Value2;
If AO[0]>AO[1] then Buy at Hight + 1 point Stop{до отмены или исполнения};
If AO[0]<AO[1] then Sell at Low - 1 point Stop{до отмены или исполнения};
If AO[0]=AO[1] then {снять все активные заявки};
end;
Григорий, поясните текстом
Григорий, поясните текстом что именно вы хотите получить при исполнении данной стратегии. Решение на покупку или продажу вы принимаете по изменению дивергенции сс. Стопы на покупку или продажу у вас фиксированные или скользящие?
Oxana
Добрый день Oxana! Это не стратегия, просто чтоб много места на форуме не занимать, вставил индикатор АО, добавил ордеры.
По стратегии у меня вход, выход только стоп-лимит ордерами. Если выполняется условие выставляется стоп-лимит(фиксированный,до отмены или исполнения).
Проблема в том, что на следующей свечке, при неисполнении, стоп-лимит снимается, а мне нужно, чтобы он оставался активным до исполнения или снятия(как в quik поставил
стоп-лимит и он стоит до исполнения или снятия).
1.При выставлении любого другого ордера нужно, чтобы выставленный ранее ордер снимался.
2.Команду на снятие/отмену всех ордеров(не сработавших)
Inputs: ...;
Vars: ..., ONBLimit(False), ONBStop(False), ONBLimit2(False), ONBStop2(False), ONBLimitValue(0), ONBStopValue(0), ONSLimit(False), ONSStop(false), ONSLimit2(False), ONSStop2(False), ONSLimitValue(0), ONSStopValue(0);
ONBLimitValue=High + 2 points;
ONBStopValue=High + 1 point;
ONSLimitValue=Low - 2 points;
ONSStopValue=Low - 1 point;
ONBLimit = Open of next bar >= ONBLimitValue;
ONBStop = Open of next bar <= ONBStopValue;
ONBLimit2 = Open next bar <= ONBLimitValue;
ONBStop2 = Open next bar >= ONBStopValue;
ONSLimit = Open of next bar <= ONSLimitValue;
ONSStop = Open of next bar >= ONSStopValue;
ONSLimit2 = Open of next bar >= ONSLimitValue;
ONSStop2 = Open next bar <= ONSStopValue;
If ... then Begin
If ONBLimit then buy next bar at ONBLimitValue limit
Else if ONBStop then buy next bar at ONBStopValue stop
Else if ONBStop2 and ONBLimit2 then buy next bar at market;
end;
If ... then Begin
If ONSLimit then sellshort next bar at ONSLimitValue limit
Else if ONSStop then sellshort next bar at ONSStopValue stop
Else if ONSStop2 and ONSLimit2 then sellshort next bar at market;
end;
If ... then {снять активные стоп-заявки по закрытии бара};
данные других таймфреймов
Для выставления ордеров в таймфрейме "1 minute" нужно посмотреть значения баров таймфрейма "1 day". Как это сделать в easy language? И как вообще вызывать функции по отношению других таймфреймов?
Omega pro suite 2000i + global server
Работа с разными таймфреймами
Здравствуйте! Для работы с разными таймферймами, необходимо на чарт наложить отдельные плоты для разных тайфреймов(например ri 1min и ri 60min). В коде программы вызываете значения баров, ссылаясь на источник данных например C of Data1 и C of Data2. Обратите внимание, что ссылки на данные по предыдущей свече большего таймфрейма работают некорректно, поэтому советую вам хранить нужные значения в своих переменных или массиве