Автор Тема: EasyLanguage  (Прочитано 34945 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн val

  • Участник клуба
  • *
  • Сообщений: 148
    • Просмотр профиля
EasyLanguage
« Ответ #80 : 04 Июня 2014, 16:57:10 »
Спасибо, буду экспериментировать.
В принципе, если открыть любой форексный символ стилем Dot on Close и брать данные, например DAX, то этих Дотов и видно не будет.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #81 : 05 Июня 2014, 00:41:19 »
Спасибо, буду экспериментировать.
В принципе, если открыть любой форексный символ стилем Dot on Close и брать данные, например DAX, то этих Дотов и видно не будет.

Видно не будет "Dot on Close", но по точкам можно вслепую попадать мышкой. Правильнее делать серию данных невидимой.

Символ Форекса может обновляться не часто. Поэтому если к его котировкам добавить котировки генератора случайных чисел, частоту обновления можно увеличить.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #82 : 21 Июня 2014, 04:52:24 »
Может кому пригодится. Можно заставить обновлять графики на базе текстового файла в TS через вызов макроса из кода Easy, если текстовый файл изменил размер.

zonpex

  • Гость
EasyLanguage
« Ответ #83 : 22 Июня 2014, 01:35:03 »
Пример, если можно.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #84 : 22 Июня 2014, 05:01:41 »
Пример, если можно.

RunCommand(s);

zonpex

  • Гость
EasyLanguage
« Ответ #85 : 22 Июня 2014, 07:21:34 »
Если честно, то не совсем понял. Это макрос или часть кода индюка или стратегии?

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #86 : 22 Июня 2014, 13:28:10 »
Если честно, то не совсем понял. Это макрос или часть кода индюка или стратегии?

Это вызов любого макроса. В справке написано подробнее. Макрос может менять символ, период графика и т.д. Все есть в справке.

zonpex

  • Гость
EasyLanguage
« Ответ #87 : 22 Июня 2014, 21:59:08 »
Спасибо, понял.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #88 : 08 Июля 2014, 04:10:30 »
Уточнение по поводу исполнения и перерасчета ордеров внутри бара.

Для  исполнения  ордера  внутри  бара, он должен выполняться  по  рынку или без обращения к open next bar. Вставьте на график  стратегию mov  avg.  crossover и увидите, что у вас доступны для включения опции исполнения ордера внутри бара.



А для Gelium_Trader эти опции  доступны  не  будут,  так  как  внутри  стратегии  для  точного исполнения ордера используется open next bar.

Dmsum

  • Гость
EasyLanguage
« Ответ #89 : 09 Июля 2014, 17:59:36 »
Подскажите, пожалуйста, на примере, как правильно использовать MarketIfTouchOrder и LimitIfTouchOrder для входа в позицию  и выхода внутри бара

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #90 : 10 Июля 2014, 03:41:33 »
Подскажите, пожалуйста, на примере, как правильно использовать MarketIfTouchOrder и LimitIfTouchOrder для входа в позицию  и выхода внутри бара

А где вы в Easy нашли такие операторы?

Dmsum

  • Гость
EasyLanguage
« Ответ #91 : 10 Июля 2014, 11:05:12 »
Насколько я понял, это функции, которые, при использовании в некоторой комбинации дают возможность купить или продать внутри бара. Выписку из описания прилагаю :
LimitIfTouchedOrder (Function)
image\trumpet2.gif Disclaimer

The LimitIfTouchedOrder function is used to configure and send a limit if touched order using the order entry macro .PlaceOrder.  You can call this function directly from your own EasyLanguage code to simplify the formatting and generation of macro orders.

   Care should be exercised when calling this function as it is intended to send live orders.  Confirmations for macro-generated orders can be configured by using the File -> Preferences -> TradeStation Order Entry menu sequence.

Syntax
LimitOrder(Frequency,Account,Action,SymbolCategory,Symbol,Quantity,Duration,GTDDate,IfTouched,LimitPrice)

Returns (Integer)
LimitIfTouchedOrder returns 1 if called on a "real-time" tick and if a trade is allowed based on the user input "Frequency".  The function returns -1 (negative one) in other cases; for example, if the function is called on an historical bar.  If there are errors in the order parameters a runtime error message will be generated and the order will not be placed.

Как правильно пользоваться - до конца не понял, поэтому решил спросить... Заранее спасибо!

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #92 : 10 Июля 2014, 14:32:05 »
Понятно. LimitIfTouchedOrder  - это функция Easy с исходным кодом. Можете посмотреть. Актуально, если вы будете торговать через TradeStation.

Dmsum

  • Гость
EasyLanguage
« Ответ #93 : 18 Июля 2014, 09:25:13 »
Использую TS, но так и не смог разобраться, как открыть позицию внутри бара в стратегии на EasyLanguage. Напишите, по-подробнее, если возможно, с примером. Заранее спасибо!

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #94 : 18 Июля 2014, 11:04:10 »
Использую TS, но так и не смог разобраться, как открыть позицию внутри бара в стратегии на EasyLanguage. Напишите, по-подробнее, если возможно, с примером. Заранее спасибо!

Смотрите готовые стратегии, типа мувинга и т.п.

Dmsum

  • Гость
EasyLanguage
« Ответ #95 : 18 Июля 2014, 11:23:48 »
Не нахожу как обойти "this bar close" или "next bar open"...

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #96 : 18 Июля 2014, 14:48:10 »
inputs: Price( Close ), FastLength( 9 ), SlowLength( 18 ) ;
variables: FastAvg( 0 ), SlowAvg( 0 ) ;

FastAvg = AverageFC( Price, FastLength ) ;
SlowAvg = AverageFC( Price, SlowLength ) ;

if CurrentBar > 1 and FastAvg crosses over SlowAvg then
{ CB > 1 check used to avoid spurious cross confirmation at CB = 1 }
Buy ( "MA2CrossLE" ) next bar at market ;

if CurrentBar > 1 and FastAvg crosses under SlowAvg then
{ CB > 1 check used to avoid spurious cross confirmation at CB = 1 }
Sell Short ( "MA2CrossSE" ) next bar at market ;

Не нахожу как обойти "this bar close" или "next bar open"...

Потрудитесь объяснять суть своих проблем более подробно. Для детективного расследования пока нет свободных сыщиков. Лето. Отпуска. :)

emyemy

  • Гость
EasyLanguage
« Ответ #97 : 01 Декабря 2014, 16:22:40 »
Как расширить функцию FindBar(), нахождение номера бара по входным данным Дата/Date и Время/Time?
Дело в том, что по умолчанию эта встроенная функция находит бар только(?) в числе первых 50-ти.

Вопрос снимаю. Решено.

Григорий

  • Гость
EasyLanguage
« Ответ #98 : 02 Февраля 2015, 21:45:43 »
Здравствуйте. Нужна помощь прописать сигнал.  Например, имеются 4 линии: Line 1(9), Line2(18), Line3 (50), Line4 (100), нужно  чтобы сигнал на покупку поступал  при пересечении линий с низу вверх Line3>Line 4 при условии поиска в прошлом, на протяжении 30  баров, условия, когда Line1<Line2 и Line 3<Line4
Как правильно этот код прописать ? :     
If  Line3>Line4  and  Line 1[1-30]<Line2[1-30] and Line 3[1-30]<Line4 [1-30] Then buy ("UT") This Bar on Close;
Т.е. я хочу  в примере сказать, чтобы на одном из прошлых баров, на протяжении 30 анализируемых прошлых баров, система бы нашла  резонанс  линий (Line1<Line2 и Line 3<Line4).
Благодарен за ответ. :o

Оффлайн val

  • Участник клуба
  • *
  • Сообщений: 148
    • Просмотр профиля
EasyLanguage
« Ответ #99 : 03 Февраля 2015, 15:20:14 »
Попробуйте так :

мониторим постоянно выполнение условия, если выполняется, запоминаем номер бара.

Inputs:Barr(30);
vars:BarNum(0);

If Line1 < Line2 and Line3 < Line4 then begin
   BarNum = BarNumber;
end;

If ( BarNumber - BarNum ) <= Barr Then buy ("UT") This Bar on Close ;

Григорий

  • Гость
EasyLanguage
« Ответ #100 : 03 Февраля 2015, 15:48:04 »
Спасибо, буду разбираться.

Григорий

  • Гость
EasyLanguage
« Ответ #101 : 04 Февраля 2015, 04:42:41 »
Думается  вот так :   If  (Line3>Line4  and  Line 1[1]<Line2[1] and Line 3[1]<Line4 [1]) or  (Line3>Line4  and  Line 1[2]<Line2[2] and Line 3[2]<Line4 [2]) or  (Line3>Line4  and  Line 1[3]<Line2[3] and Line 3[3]<Line4 [3])...........{так до [30]} Then buy ("UT") This Bar on Close     :D

Оффлайн Станислав

  • Участник клуба
  • *
  • Сообщений: 176
    • Просмотр профиля
EasyLanguage
« Ответ #102 : 03 Марта 2015, 16:37:24 »
Возможно куму-то пригодиться эта качественная инструкция...

znt

  • Гость
EasyLanguage
« Ответ #103 : 29 Марта 2015, 12:51:59 »
Доброго всем времени суток.
Есть пара вопросов:

1. Если инструмент и индикатор находятся в одной суб-графе, а шаг цены инструмента меньше 1  (1/10, 1/100 и т.д.), не получается привязать инструмент и индикатор к одной шкале (right axis или left axis).
Манипуляции со значениями индикатора (приведение к разным типам данных, округление знаков после запятой) не помогают.
Если шаг цены инструмента "as is” или выше (10, 100 и т.д.) такой проблемы нет.

Использование “same axis as underlying data” не всегда приводит к желаемому результату.
Например, если тип графика bar high, bar low и значение индикатора за пределами диапазона бара, получаем вертикальную черту размером - значения индикатора + размер бара + промежуток между индикатором и баром, с толщиной не соответствующей значению индикатора (также как, если тип индикатора – PaintBar).
В этом случае логика разработчиков абсолютно непонятна, но здесь хотя бы все однообразно.

Может, кто знает, как это исправить?

2. В меню TDE отсутствует Debugger и недоступна панель Resource Editor.
В хэлпе написано -  This feature has been provided as a developer preview and is not yet ready for production use.
Вопрос – как активировать (установить)?

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #104 : 29 Марта 2015, 13:39:51 »
1. Если инструмент и индикатор находятся в одной суб-графе, а шаг цены инструмента меньше 1  (1/10, 1/100 и т.д.), не получается привязать инструмент и индикатор к одной шкале (right axis или left axis).

Не понятно, почему индикатор и данные символа с разными шкалами должны уживаться на одной шкале.

2. В меню TDE отсутствует Debugger и недоступна панель Resource Editor.
В хэлпе написано -  This feature has been provided as a developer preview and is not yet ready for production use.
Вопрос – как активировать (установить)?

https://gelium.net/soft-ts/tradestation-main/ts-review/item/1310-ts-tradestation-91-update-13-24#8

znt

  • Гость
EasyLanguage
« Ответ #105 : 29 Марта 2015, 14:46:28 »
Разобрался с “same axis as underlying data” – на вкладке style, есть опция:
when plotting on a candlestick – надо выставить: paint as a vertical line.
Тоже самое и для PaintBar.
Так что первый вопрос можно считать решенным.

znt

  • Гость
EasyLanguage
« Ответ #106 : 29 Марта 2015, 14:58:00 »
Не понятно, почему индикатор и данные символа с разными шкалами должны уживаться на одной шкале.

Но если шаг цены инструмента "as is” уживаются же.

https://gelium.net/soft-ts/tradestation-main/ts-review/item/1310-ts-tradestation-91-update-13-24#8

Спасибо, проглядел.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 221
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #107 : 31 Марта 2015, 07:06:46 »
Не понятно, почему индикатор и данные символа с разными шкалами должны уживаться на одной шкале.

Но если шаг цены инструмента "as is” уживаются же.

Приложите скриншот. Так и не понял что с чем уживается.  ;)

znt

  • Гость
EasyLanguage
« Ответ #108 : 04 Апреля 2015, 12:35:02 »
Приложите скриншот

Простейший индикатор (например, plot1(c, “C”)):
- без проблем привязывается (уживается) к одной шкале (оси) с инструментом, если шаг цены инструмента кратен 1 (например, фьючерс на индекс РТС, price scale – as is, scale on - right axis или left axis);
- и никак не хочет этого делать, если шаг цены инструмента меньше 1 (например, фьючерс на смесь Brent, price scale – 1/100, scale on - right axis или left axis).

Так, думаю понятней, чем на картинка скриншоте.
Вопрос уже не актуален (решен через: same axis as underlying data - when plotting on a candlestick – paint as a vertical line).

Обнаружилась следующая проблемка:
AlertEnabled возвращает True только на последнем баре, хотя в хелпе написано:
«The difference between this reserved word and the CheckAlert reserved word is that AlertEnabled returns a value of True for all bars when the alert is enabled whereas CheckAlert returns a value of True only for the last bar on the chart.»

Непонятно почему так происходит – в TS 8.x все работало, как написано в хелпе.

Оффлайн val

  • Участник клуба
  • *
  • Сообщений: 148
    • Просмотр профиля
EasyLanguage
« Ответ #109 : 05 Апреля 2015, 03:40:20 »
Для самообразования : https://markplex.com/free-tutorials/

Оффлайн val

  • Участник клуба
  • *
  • Сообщений: 148
    • Просмотр профиля
EasyLanguage
« Ответ #110 : 06 Апреля 2015, 11:57:10 »
В инете встречаю возможность анализировать Эллиот волны с помощью ElWaveCount (ShowMe) как в Омеге так и в TS.
Кто-нить имеет оную ShowMe или что-то в этом роде ?

zonpex

  • Гость
EasyLanguage
« Ответ #111 : 06 Апреля 2015, 23:40:20 »
Есть похожее, но в SEFачном формате (для МС). Могу выложить. Если хотите , то подождите, будет время, сделаю TXT.

Оффлайн val

  • Участник клуба
  • *
  • Сообщений: 148
    • Просмотр профиля
EasyLanguage
« Ответ #112 : 07 Апреля 2015, 02:18:38 »
Спасибо, txt тоже можно.

fx.dsolop

  • Гость
EasyLanguage
« Ответ #113 : 07 Апреля 2015, 18:01:40 »
Здравствуйте, Форумяне
Подскажите, пожалуйста, возможно ли в EL сделать торгового робота, чтоб он сам автоматически торговал 24/5. Например, на дневном графике открывал позиции в начале суток в зависимости от анализа Exponential Moving Average. Как такой робот называется в терминологии EL, чтоб знать что искать и о чем читать.

Заранее спасибо за ответ :)

zonpex

  • Гость
EasyLanguage
« Ответ #114 : 07 Апреля 2015, 22:00:47 »
Код в txt wave.sef

Оффлайн val

  • Участник клуба
  • *
  • Сообщений: 148
    • Просмотр профиля
EasyLanguage
« Ответ #115 : 08 Апреля 2015, 03:20:21 »
Спасибо    zonpex, в TS 91 ShowMe (из txt) рисует волны. Только это не Elliott  а что-то не понятное, пока.
Хотелось бы иметь какой-нить инструментарий для ручной разметки волн по своим расчетам.

zonpex

  • Гость
EasyLanguage
« Ответ #116 : 09 Апреля 2015, 01:18:06 »
Один из индикаторов для ап тренда, другой даун. В настройках индикатора есть параметры для расчета по Эллиоту.

Igor

  • Гость
EasyLanguage
« Ответ #117 : 14 Апреля 2015, 17:37:48 »
может имеет смысл завести ветку по easylanguage?

что бы делиться полезностями типа такого:

при работе с текстами постоянно приходится иметь в уме количество десятых если необходимо вывести ценовое значение
а ежели использовать такой код
if PriceScale = 100000 then autodecimal = 5 else
if PriceScale = 10000  then autodecimal = 4 else
If PriceScale = 1000   then autodecimal = 3 else
If PriceScale = 100    then autodecimal = 2 else
If PriceScale = 10     then autodecimal = 1 else
If PriceScale = 1      then autodecimal = 0;
введя переменную autodecimal и подставляя её как второй параметр в NumToStr, будем автоматически иметь правильное отображение цены
можно оформить в функцию

Можно еще проще и универсальней: ;D

{***************************************************************************************************
Функция предназначена для определения ценовой доли актива (количества знаков дробной части)
***************************************************************************************************}

Vars: Val1(MinMove / PriceScale),
      Val2(Round(0.123456789 / Val1, 0)),
      Val3(IFF(Val2 = 0, 0, StrLen(NumToStr(Val2, 0))));

PFDigits = Val3;



{***************************************************************************************************
Функция предназначена для округления значения переменной до ценовой доли актива
***************************************************************************************************}

Inputs: Value(Numeric);

PFRound = Round(Value, PFDigits);



Например, значение Value0 = PFRound(Close / 3) будет округлено до ценовой доли.





не пойму, как тут вообще темы задавать?

Оффлайн Станислав

  • Участник клуба
  • *
  • Сообщений: 176
    • Просмотр профиля
EasyLanguage
« Ответ #118 : 19 Января 2016, 19:10:27 »
Возможно кому-нибудь пригодится :)

Оффлайн Станислав

  • Участник клуба
  • *
  • Сообщений: 176
    • Просмотр профиля
EasyLanguage
« Ответ #119 : 19 Января 2016, 19:13:41 »
Возможно кому-нибудь пригодится  :)