[EasyLanguage]ストラテジーのコードを読み解く(トレードステーション)

移動平均線のクロスのストラテジーのプログラミングを見ていきたいと思います。

思っていたより短いですね。
これがすべてのソースコードです。

 

これが、inputパラメータの記述です。

移動平均線2本のクロスなので、短期と長期のそれぞれの期間と
計算に使うHLOCを選択します。

ここはインジケーターのときにも触れたので問題はないと思います。

Closeは現在の終値、すなはち現在レートを表します。
一つ前の足を参照する場合はClose[1]です。

MQL4に近いですね。

MQL5より100倍マシだと思います。その後改善されてましになりました。

Open,High,Lowも同様に使えます。

次に移動平均線の値の箇所です。

AverageFCは組み込み関数で、単純平均を行います。
FCはおそらく、fast calculate の略だと思います。

パラメータ
Price 数値 価格、関数および公式のうち、バーのどの値を使用するかを指定します。
Length 数値 考慮するバーの数を設定します。

最後にメインの箇所です。

 

MQLのようにループ関数(Ontick,Oncalculate,Start,OnStart)の中にメインとなる記述をするわけではありません。

CurrentBarは、現在評価されている足の数を返します。
チャートの各足に番号が割り当てられ、番号は後続の足のそれぞれについて 1 ずつ増分されます。

crosses over は、文字通りクロスオーバーしたらという条件文です。
さすがトレード専用に開発された言語だけありますね。(てか、三人称単数現在も反映するのね)

Cross または Crosses の後には、常に、Above、Below、Over、または Under が続きます。

オーダーはBuyのみで行われるので、プログラム側でロットの変更やオーダー種別の指定はできません。

まだ、なかなかEasyLanguageに慣れるまではいかないと思いますが、
あと何回かサンプルに触れれば、だいたいの雰囲気はつかめると思います。

 

TicksとVolumeの違い

FXの場合、ティックとボリュームはほぼ同義語ですが、
株の場合はちょっと違います。

Volume アップティックで取引された出来高
Ticks 合計出来高
UpTicks アップティックで取引された出来高
DownTicks ダウンティックで取引された出来高
OpenInt ダウンティックで取引された出来高

インジケーターで一応チェックすると、

 

bandicam 2017-10-05 19-42-12-302

違いがわかります。

tick 15186679.00
volume 5637100.00

なんでVolumeをアップティックに限定しているのか意味不明です。UpTicksがあるならUpTicksを使えばいいと思うの。

補題 TradeStationの演算タイミング

MetaTraderではバックテストの際に、始値、コントロールポイント、全ティックを選択できますが、
TradeStationの場合は始値の更新タイミングでしか演算できません。

つまり、ブレイクアウトなどの手法を使う場合、
成行注文だと約定レートが大きくずれる可能性があります。(多分)

 

 

インジケーターのコード上でプロパティ設定

EasyLanguageのインジケーターの線の太さや色などのプロパティは
基本的にはプロパティ画面で設定します。

bandicam 2017-10-07 10-08-06-792

しかし、MQLのようにソースコード上での指定も可能です。

ソースコード上にないのに色や太さなどが定義されているのは
少し感覚的に気持ち悪いので、コード上で指定したいと思います。

 

プロット番号は、PlotXのXです。
1~99まで可能です。(なんで0からじゃないの)

DataTypeは

名前 値
ptDate 25
ptDateTime 27
ptDouble 28
ptFloat 29
ptInvalid 3
ptProbability 4
ptString 2
ptTime 26
ptTrueFalse 1

から指定します。

bandicam 2017-10-07 10-09-05-144

 

リペイントとは

MetaTraderではインジケーターのEA化をすることがよくありますが、
その際にリペイントがあると比較的問題になります。

リペイントとは一度シグナルを出した後に、そのシグナルを修正したり、消したりすることです。

これをされると、シグナルに応じてエントリーしたのに、
あとでチャートを確認するとシグナルが消滅していてクレームになることがあります。

リペイントをすると過去チャートのチャート分析のときには
そのシグナルがすごい優秀に見えますが、結局は”後だしジャンケン”なので、
何の役にも立ちません。

TradeStationの場合もリペイントがあります。

 

こいつが戦犯です。

これの恩恵で一度表示したシグナルを消すことができます。
カッコ内の番号はプロットの番号です。ロウソク足の場所の番号ではありません。

ただし、この関数は現在足にしか効かないので、
過去にさかのぼって消すことはできません。

つまり、TradeStationの場合、現在足でのみリペイントが発生する可能性があり、
それだけ警戒すればOKです。

サンプル

 

この投稿は役に立ちましたか? 役に立った 役に立たなかった 1 人中 1 人がこの 投稿 は役に立ったと言っています。

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

トレードステーションの使い方(初心者)

トレードステーションのチャートの表示方法 TradeStation/トレードステーションは、Met

記事を読む

初心者のためのEasyLanguage入門(トレードステーション)

これからトレードステーションのストラテジーを開発するためにEasyLanguageをやってみようとい

記事を読む

日本株の個別銘柄でシステムトレード検証&自動売買(ダウンロードあり)

MT4/MT5というとFXでのトレードプラットフォームの印象が強いですが、株のトレードも可能です。特

記事を読む

株の自動売買プログラムを開発する6つのやり方

FX業界ではMT4/MT5のおかげもあり、個人レベルでも自動売買やシステムトレードが盛んにおこなわれ

記事を読む

[EasyLanguage]パーフェクトオーダーを作る(トレードステーション)

今回は久々にプログラミングを触ります。 TradeStationはデフォルトで比較的なインジケータ

記事を読む

 

上に戻る