Запись Предупреждений
Многие из методов анализа, встроенных в TradeStation, обеспечивают опцию предоставления аудио/визуального предупреждения. Когда предупреждение вызывается, оно регистрируется в окне Tracking Center, и появляется диалоговое окно, как показано на Рисунке 2-4. В то же самое время запускается звук уведомления.

Диалоговое окно отображает название символа, название методики анализа и рабочей области, в которой предупреждение было вызвано. Кроме того, диалоговое окно имеет поле по имени Additional Info (Дополнительная Информация), которое содержит дополнительную информацию, обеспеченную методикой анализа. Вся эта информация также регистрируется в Tracking Center.
Чтобы включить предупреждение в методику анализа, Вы используете alert инструкции. Описание, включенное в поле Additional Info, написано в инструкции предупреждения EasyLanguage, включенной в процедуру, которая вызвала предупреждение.
Вы можете включить alert инструкции в:
Индикаторы
ShowMe изучения
PaintBar изучения
ActivityBar изучения
ProbabilityMap изучения
Вы можете использовать любое из зарезервированных слов, описанных в этом разделе с индикаторами и изучениями. Когда критерии EasyLanguage выполнены на последнем баре в ценовой диаграмме или таблице, вызывается предупреждение.
Очень важно помнить, что предупреждения вызываются только тогда, когда критерии, указанные alert инструкцией выполнены на последнем баре ценовой диаграммы или таблицы. Исторические случаи предупреждений не регистрируются в окне Tracking Center, и при этом диалоговое окно Alert Notification не появляется.
Предупреждения можно представить как выключатель, который может быть в положении «включено» или «выключено» в зависимости от используемой инструкции. Как только все команды инструкции прочитаны, заключительное состояние этого выключателя определяет, будет вызвано предупреждение или нет.
Например, скажем, четвертая строка индикатора вызывает предупреждение; однако, самая последняя строка индикатора - инструкция, которая отключает предупреждение. В этом случае, индикатор не будет вызывать предупреждение.
Предупреждения вызываются после того, как все инструкции EasyLanguage были проанализированы для последнего бара ценовой диаграммы или сетки. Это дает Вам возможность включать и/или отключать предупреждения в изменяющихся рыночных условиях.
Ниже - связанные с предупреждением зарезервированные слова, которые Вы будете использовать, чтобы включить предупреждения в ваши индикаторы и/или изучения.
Alert
Это зарезервированное слово вызывает предупреждение и дает возможность Вам описать условия, которые вызвали предупреждение.
Синтаксис:
Alert("Description") ;
Description (Описание) - любая определяемая пользователем текстовая строка. Вы используете текстовую строку, чтобы обеспечить информацию о предупреждении: типа рыночных условий, которые вызвали это предупреждение. Эта текстовая строка появится в поле Additional Info диалогового окна Alert Notification (показанной на Рисунке 2-4) и в Tracking Center. Вы можете не давать описания, тогда в поле Additional Info в диалоговом окне Alert Notification и описании предупреждений в Tracking Center будут пробелы.
Если Вы включаете более чем одну инструкцию Alert в ваш индикатор или изучение, то вызывается Описание, включенное в последнее вызванное предупреждение. Например, предположим, что следующий индикатор применен к ценовой диаграмме:
Plot1 (Average (Close, 10), "Avg");
If Close Crosses Over Plot1 Then
Alert ("Price crossed over average");
If Volume > Average(Volume, 10) Then
Alert ("Volume Alert");
Если на последнем баре ценовой диаграммы оба условия истинны, то вычисляются оба предупреждения. В этом случае, фактически вызывается и регистрируется только одно предупреждение, и оно будет иметь последнее Описание, которое в вышеупомянутом примере является предупреждением с Описанием "Volume Alert".
Cancel
Это зарезервированное слово используется, чтобы отменить предупреждение; оно выключает любые предупреждения, вызванные в течение текущего бара.
Синтаксис:
Cancel Alert
Например, если Вы записываете индикатор с двумя alert критериями, но Вы хотите, чтобы предупреждение вызывалось только после 11:00am, Вы можете использовать следующие инструкции:
If Close Crosses Over Average (Close, 10) Then
Alert ("Average Cross Over");
If Volume > Average (Volume, 10) Then
Alert ("Volume Spike");
If Time <= 1100 Then
Cancel Alert;
Если предупреждение вызвано любой из инструкций Alert, оно выключается инструкцией Cancel Alert, если это происходит до 11:00am. Если предупреждение вызвано после 11:00am, тогда любая инструкция Alert истинна и выполняется.
CheckAlert
Это зарезервированное слово определяет, действительно ли текущий бар - последний бар на ценовой диаграмме (или таблицы) и действительно ли предупреждение включено в данный момент для индикатора или изучения.
Когда предупреждение включено и вызывается на последнем баре на диаграмме (или таблицы), то это зарезервированное слово возвращает значение "ИСТИННО". Это зарезервированное слово возвратит значение "ЛОЖНО" для всех других баров на ценовой диаграмме, и на последнем баре ценовой диаграммы, если предупреждение не включено.
Это позволяет Вам оптимизировать ваши индикаторы (изучения) для увеличения скорости обработки; Вы можете написать индикатор (изучение), игнорирующий все инструкции, касающиеся предупреждения, если в данный момент рассматривается не последний бар ценовой диаграммы или предупреждение не включено.
Синтаксис:
CheckAlert
Например, следующие инструкции могут использоваться, чтобы вызвать предупреждение, когда текущий объем - удвоенный средний объем, и отобразить отношение между текущим объемом и средним его значением за период. Поскольку используется CheckAlert, вычисления игнорируются для всех исторических баров так же, как когда предупреждение не включено.
If CheckAlert Then Begin
Value1 = Volume / Average (Volume, 10);
If Volume >= 2 * Average (Volume, 10) Then
Alert ("Volume is" + Value1 );
End ;
Обратите внимание: Применение CheckAlert в инструкции IF-THEN эффективно для оптимизации вашей методики анализа; однако, даже в том случае, когда последующие инструкции игнорируются, индикатор или изучение все же принимают во внимание следующие инструкции, чтобы определить число баров(MaxBarsBack), необходимых для вычисления индикатора или изучения. Обратитесь к разделу "Аварийные Директивы Компилятора" для получения информации относительно других зарезервированных слов, которые Вы можете использовать, чтобы игнорировать инструкции полностью.
AlertEnabled
Это зарезервированное слово возвращает значение "TRUE", когда предупреждение включено для индикатора или изучения, примененного к ценовой диаграмме или таблице (и FALSE, когда - выключено). Это позволяет Вам оптимизировать индикатор или изучение для увеличения скорости обработки; инструкции после этого зарезервированного слова вычисляются только тогда, когда предупреждение включено.
Различие между этим зарезервированным словом и CheckAlert в том, что AlertEnabled возвращает значение "TRUE" для всех баров, когда предупреждение включено, тогда как CheckAlert возвращает значение "TRUE" только для последнего бара на диаграмме.
Синтаксис:
AlertEnabled
Например, следующие инструкции вычисляют кумулятивный объем роста/падения, и предупреждение вызывается, когда линия кумулятивного роста/падения превышает свое максимальное значение на последних 50 барах:
If AlertEnabled Then Begin
If Close > Close[1] Then
Value1 = Value1 + Volume
Else
Value1 = Value1 - Volume;
If Value1 > Highest (Value1,50)[1] Then
Alert ("New A/D line high");
End;
В этом примере, линия роста/падения будет рассчитана, только если предупреждение включено, и вычисление будет произведено для всех баров на ценовой диаграмме или в таблице, а не только на последнем баре.
Обратите внимание: Хотя инструкции, которые следуют за этим зарезервированным словом, иногда игнорируются, индикатор или изучение все еще принимают во внимание инструкции, определяющие количество баров, необходимых для вычисления индикатора или изучения (MaxBarsBack), а также любых серийных функций, рассчитываемых в пределах инструкций. См. раздел "Директивы Компилятора Alert" для получения информации о дополнительных зарезервированных словах, которые Вы можете использовать, чтобы игнорировать инструкции полностью.
Использование Директив Компилятора Alert
Следующие зарезервированные слова - директивы компилятора, которые дают команду вашему индикатору или изучению полностью игнорировать инструкции, которые следуют за зарезервированным словом, в случае, если предупреждение не включено для индикатора или изучения. Индикатор или изучение не будут принимать во внимание инструкции после этих слов, даже когда они (инструкции) определяют количество баров, необходимых для выполнения вычислений (MaxBarsBack); также не будут рассчитываться любые серийные функции в пределах этих инструкций.
#BeginAlert
Инструкции между этой директивой компилятора (#BeginAlert) и зарезервированным словом #End вычисляются только тогда, когда предупреждение включено для методики анализа. Вы должны использовать зарезервированное слово #End с этим зарезервированным словом.
Синтаксис:
#BeginAlert;
{EasyLanguage instruction(s) };
#End;
Например, индикатор, который вычисляет 10-барный импульс цен закрытия, требует данные десяти баров для построения результирующего графика. Однако если предупреждение добавить предупреждение к этому индикатору, и предупреждение использует 50-барное среднее объема, то требование к необходимому количеству баров повышено до пятидесяти. Вместе с тем, 50-барное среднее используется только для вычисления предупреждения, и поэтому, если предупреждение не включено, то индикатор не будет ожидать 50 баров для возвращения результата.
Поэтому, чтобы получить график индикатора после десяти баров и игнорировать требование 50 баров, используйте #BeginAlert в вашем индикаторе следующим образом:
Plot1 (Close - Close[10], "Momentum");
#BeginAlert;
If Plot1 Crosses Over 0 AND Volume > Average (V, 50)* 2 Then
Alert ("Momentum is now positive");
#End;
Вышеупомянутый индикатор вычисляет график импульса и вызывает предупреждение, если значение импульса становится положительным при одновременном превышении объемом удвоенного 50-барного среднего объема. Когда индикатор применен с выключенным предупреждением, для вычислений требуется 10 баров. При включении предупреждения индикатор рассчитывается повторно; заново оцениваются инструкции в пределах директив компилятора, и новое требование - 50 баров.
#BeginCmtryOrAlert
Когда комментарий и инструкции предупреждения взаимосвязаны, но комментарий или инструкции предупреждения не связаны с вычислениями индикатора или изучения, используют зарезервированное слово #BeginCmtryOrAlert. Инструкции между этой директивой компилятора и зарезервированным словом #End вычисляются только тогда, когда или комментарий сгенерирован, или предупреждение включено. Вы должны использовать зарезервированное слово #End с этим зарезервированным словом.
Синтаксис:
#BeginCmtryOrAlert;
{EasyLanguage instruction(s) };
#End;
Например, следующий индикатор вычисляет 10-барный график импульса цен закрытия, и вызывает предупреждение, когда значение импульса становится положительным при одновременном превышении объемом удвоенного 50-барного среднего объема. Кроме того, написан комментарий, чтобы помочь идентифицировать бар с указанными рыночными условиями.
Plot1 (Close - Close[10], "Momentum");
#BeginCmtryOrAlert;
If Plot1 > 0 Then
Commentary ("Momentum is positive, ")
Else
Commentary ("Momentum is negative, ");
If Volume > Average (Volume, 50) Then Begin
Commentary ("and volume is greater than average.")
If Volume > Average(Volume, 50) * 2 Then
Alert;
End;
Else
Commentary("and volume is lower than average.");
#End;
|