FX初心者EA作成の道 番外編
こんにちは
FXあきです。
EA作成の依頼やインジケーターの質問を受けたりします。
なにか相談があれば気軽にご質問下さい⇒こちら
基本的なEAの作成に必要な情報をここで伝えていきます。
EAの構築の基本知識なので
システム運用にも役に立つと思います。
プログラム勉強をしたいが、時間が作れなくて忙しいといった方にはEAサロンがお勧めです( ̄ー ̄)ニヤリ
ご自身のトレードアイデアをシステム化できる素敵なサロンです⇒EAサロンはこちら
まずは!!
大原則
チャート一枚につき、セットできるシステムは1個まで!!
EAでポートフォリオを組む時に同じチャートに複数のEAをセットしようとして稼働できませんでしたと質問と頂いた事があります。
インジケーターは複数同じチャートにセットできますが、チャート一枚に、セットできるシステムは1個です。
基本なので覚えておいて下さい。
簡単作成方法は、こちらの過去記事を参考にされて下さい⇒
EA作成 初心者への道2.リファレンスとトレードアクション編
まずはEAテンプレートを表示します。
基本としてプログラムは上から下に流れていきます。
これ基本です。
int OnInit() 関数
これはチャートにEAがセットされて一度だけ実行されるゾーンです。
例えば、EAをセットした時にEA名が表示される命令等です。
OnDeinit()
これは上の逆で、EAが取り除かれた時に実行されるゾーン
あまりEAをチャートから外すことはないですがw
OnTick()
チャートが動いた時に実行されるゾーンです。
プログムの決まりで実行されると上から下に流れていくのが決まりです。
EAをセットしてティックが動くたびに実行されるプログラムがOnTickです。
OnTestert()
バックテストの時に実行するゾーンです。
チャートにコメントと時間を表示してみよう
一番最初に覚えやすいプログラムが、チャートへのコメント挿入です。
早速やってみましょう
int OnInitに
//+——————————————————————+ int OnInit() { //— // チャートにEAがセットされて一度だけ実行されるゾーン //Comment(“Test”); //— return(INIT_SUCCEEDED); } //+——————————————————————+ |
と入力して、EAをセットすると
チャートの左上に表示されます。
int OnInitに入力した命令が、一回だけ実行されます。
次はチャートに時間を表示してみます。
OnTickに
//+——————————————————————+ void OnTick() { //— チャートが動いた時に実行されるゾーン comment(TimeCurrent()); } |
と入力して、EAをセットすると
サーバー時間がチャートの左上に表示されます。
TimeCurrent(タイムカレンシー)で表示される時間は、ブローカーのサーバー時間です。サーバーの設置されている場所で時間が変わります。日本時間を表示したい場合は別の方法が必要です。
まずは覚えて欲しい3つの 変数 int、double 、bool
変数とはよくプログラミングでは
データーを格納する箱と言われます。
この格納を宣言するして色々なデーターを使用します。
変数は使用する前に宣言する必要があります。
変数の宣言
固有の名前は変数を識別する為に使用されます。変数を宣言するには、型と固有の名前を指定する必要があります。
char, short, int, long, uchar, ushort, uint, ulong ・・・ 整数
color ・・・ RGB色を表す整数
datetime ・・・日付と時刻表す符号無し整数。 1970年1月1日0秒からの経過秒数。
bool ・・・ trueとfalseのブーリアン値・真偽型 真:true 偽:fales
double ・・・ 倍精度浮動小数点数
float ・・・単精度浮動小数点数
string ・・・ 文字列
まず覚えて欲しい3つの形は、int、double 、bool
int=1 は・・・・整数
double =0.1は ・・・・小数点
bool = true:fales ・・・はい OR いいえ の選択
まずは、この3つを覚えて下さい。
トレードの基本移動平均線の使った
テストとして、チャート(価格)が 移動平均線の上にあるのか?下あるのか?判断するプログラムを紹介します。
赤いラインがMA(移動平均線)です。
移動平均線使ったトレードはEAの基本的なので覚えましょう。
まずは、OnTick()に移動平均の位置(レート)を取得できるプログラムを書きます。毎回使うコードになりますので覚えておいてください
OnTickに
//+——————————————————————+ //| Expert tick function | //+——————————————————————+ void OnTick() { //— チャートが動いた時に実行されるゾーン Comment(sei); |
と入力して入力します。
レート(価格)は整数ではないので、doubleで表示します。
豆知識として
一度,(カンマ)削除して、再度,(カンマ)入力しなおすと内容を表示してくれます。↓↓
iMAの基本解説
iMAを簡単に説明します。
iMA(通貨ペア, 時間足周期, 期間, 表示移動, MAの種類, 適用価格, シフト数)
通貨ペア
通貨ペアを文字列で指定します。NULLは稼働チャートの通貨ペアです。
時間足周期
時間足周期を整数または定数で指定します。0またはPERIOD_CURRENTとすると稼働チャートの時間足周期。
1分足は”1”か”PERIOD_M1”、5分足は”5”か”PRIOD_M5”と指定します。
期間と表示移動
期間と表示移動は整数で指定します。通常はゼロですが手法によって変わってきます。一目均衡表の遅行スパンなんかがそうですね
MAの種類
MAの種類は、4種類選べます。
単純移動平均 MODE_SMA
指数移動平均 MODE_EMA
平滑移動平均 MODE_SMMA
加重移動平均 MODE_LWMA
適用価格
適用価格は、次の7種類から選びます。
終値 PRICE_CLOSE
始値 PRICE_OPEN
高値 PRICE_HIGH
安値 PRICE_LOW
Median price (高値+安値)/2 PRICE_MEDIAN
Typical price (高値+安値+終値)/3 PRICE_TYPICAL
Weighted close price (高値+安値+終値+終値)/4 PRICE_WEIGHTED
シフト数
シフト数は、ローソク足何本分前かを指定します。
Bid と Ask
まずはチャートにBid と Askを表示します。
チャート内にAskラインを表示する方法は、「チャート」メニューから、「プロパティ」をクリックします。
「全般」タブをクリックし「Askのラインを表示」にチェックマークを入れ、「OK」ボタンをクリックします。
価格白ラインの上に表示されてる赤い線がAskイランです。
Bidはあくまでトレードの基準値です。
売りたいと思ったらBid値、
買いたいと思ったらAsk値
下 Bid
上 Ask
と覚えて下さい。
これを使って
簡単な注文プログラムを作ります。
BidとMAを比較してBidが大きければ注文をいれる命令です。
OnTickに
// if( Bid < Ma1 && Posi>=1){ポジションを決済する} |
と入力して入力します。
実際は、条件をプラスしてきます。ポジションがゼロ、トレードの時間帯等々りです。
コンパイル時のエラーがでても 慌てない
コンパイルしてエラーがでても
慌てななくて大丈夫です↓↓
エラーメッセージをダブルクックすれば
エラーのポイント(付近)までカーソルが移動します。↓↓
エラーには色々種類があります。
タイプミスや全角スペースのエラー。
スペースは全て半角、プログラムは全て半角で書きましょう
セミコロン”;”が行の終わりがという命令ですが
”;”の入力忘れなどもあるので注意しましょう。
今回は以上です^^
また継続してEAの作成方法をブログでお伝えしていきます。
最後に
今回使用したプログラムの一覧です。↓↓
~テキストプラグラム~
//+——————————————————————+ //| Test.mq4 | //| Copyright 2020 | //| https://www.mql5.com | //+——————————————————————+ //ここから実行される #property copyright “Copyright 2020” int sei =1; double hudou =0.1; bool hanntei = true; // false; string Comment_set=”nakayan”; //// パラメーター extern double Lots=0.1; extern int MAGIC=65471; //+——————————————————————+ // ポジション数調を変数Posiに入れる // コメントで移動平均数値、BId、Askをチャート上に表示 // if( Bid < Ma1 && Posi>=1){ポジションを決済する} //— |
FXあき
では では
■メルマガ登録特典、FX自動売買で勝つ秘訣プレゼント中⇒メルマガ登録はこちら 「これが無料なの?」と大反響の豪華特典!あなたがFXで稼ぐ為に絶対必要な武器となります。
メルマガ詳細はこちら
メールが届かない場合はこちらをお読みください
Post Footer automatically generated by Add Post Footer Plugin for wordpress.
タグ
EA作成 FX初心者2020年10月30日 | コメントは受け付けていません。|
カテゴリー:FX初心者EA製作への道
EA 製作 初心者への道.2 リファレンスとトレードファンクション 編
FXあきのお願い
あなたの、1クリックがブログ継続のエネルギーになります。
1クリックしてお願いします。
![]() にほんブログ村 |
![]() FXシステムトレード ブログランキングへ |
EA 製作 初心者への道 リファレンスとトレードファンクション 編
EAを作る作業は
部品を組み立てるのと、近いイメージです。
イメージ図↓↓
基本的にはエントリー(注文)とイグジット(決済)があり
後は細かいアレンジになります。
前回の記事で、最後にお伝えしたエントリーのイメージ
前回の記事はこちら⇒こちら
移動平均短期30 と移動平均長期100 がクロスしたら ロングポジションを持つ
10Pips上昇したら決済する。
10Pips下降したら決済する。
この言葉のイメージ(部品)を繋ぎ合わせていけばEAが完成します。
部品・素材を準備して、後は組み立てていく、そう考えるとEA製作は実に簡単です。
それでは本日は、もう少しEA製作に必要になる、基本知識をお伝えします。
難しい単語や部品が出てきたら、F1でリファレンスを活用しよう
まずはメタエディターを起動して下さい。
EA製作画面がでてきます。
メタエディターを起動が分からない場合は、
前回の記事をどうぞ⇒こちら
では次にF1を押してください。
そうすると、リファレンスのバージョンアップが報告されます。(最新版の場合はバージョンアップ報告はありません)
YESでお願いします。
リファレンス(Reference)とは?
対象となるものの機能やしくみについて、一般のマニュアルよりも詳細に書かれた文書のこと。また、プログラミングの分野では、主に関数の使い方などが書かれた文書のことを指します。
リファレンスは、EA製作に使う部品の説明書又は辞書と考えて下さい。慣れるまでは頻繁に使う機能なので覚えておいて下さい。
すると、このような画面が表示されます。↓↓
ここでは全て英語ですが、実際に使用する項目は限られているので、全部を覚える必要はありません^^
最初はキーワードを選択しているので、用途によって左上の目次、キーワード、検索、お気に入り、と選択して下さい
最も使用するトレードファンクジョン機能をテストEAに使ってみましょう
次に、先ほどの画面で、目次を選択して下さい。
すると、このような辞書が左側にずらりと表示された画面になります。
この中から、一番使う機能として、トレードファンクションズ(Trade Functions)を説明します。
トレードファンクションズ(Trade Functions)とは、トレードをするのに必要な命令等です。
Trade Functionsを選択して下さい↓↓
すると右側の画面に命令が表示されます。
これは余談ですが、これまでのMT4は基本的に処理注文を1個1個ださないといけませんでしたが、ビルド600になってからは、複数同時に命令がだせるようです、、、これは凄い進化で、かなり改善されています。
今回のビルド600のバージョンアップで注文系統等が、がかなりよくなっているようです。
では、余談はこれまでとして
この中から、よく使用するオーダーズトータル(OrdersTotal)をテストEAで実際に使用してみましょう。
オーダーズトータル(OrdersTotal)は、未決済・保有中のポジションを調べる部品です。
オーダーズトータル選択すると、下の画像のように命令の細かい内容が表示されます。
どのように使用するかは、これを参考にします。
では早速テストEAに「OrdersTotal」を加えてみましょう。
今回はティックが動く時に命令される、4段目void OnTick()に命令をします。それでは
position = OrdersTotal(); とご入力下さい。
入力後、EAをコンパイルして下さい。
そしてテストEAをチャートにセットします。
前回のテストEAでは、コメントはチャートに文字を表示さる命令でしたが、今回はターミナルのエキスパートに命令を表示させます。
テストEAはポジション持っていないので、保有中のポジションが0と表示されています。
試しにテストEAでポジションを保有してみます。
ポジションをロング(買い)で1ロット入れました。
その後、エキスバートを確認してみると
ポジション数が0⇒1になっています。
では次に、ポジションを決済すると
ポジションが1⇒0になりました。
簡単ではありますが以上が
それでは最後に「まめ知識」として、、先ほどメタエディタに入力した「OrdersTotal」を選択して下さい。こんな感じです↓↓
そして、F1を押せば↓↓リファレンスで一発OrdersTotalを検索できます。
本日はリファレンスの検索方法をご説明しました。
また次回をお楽しみ下さい。
お読み頂ありがとうございます。
それでは失礼致します。
FXあき
では では
■メルマガ登録特典、FX自動売買で勝つ秘訣プレゼント中⇒メルマガ登録はこちら「これが無料なの?」と大反響の豪華特典!あなたがFXで稼ぐ為に絶対必要な武器となります。
メルマガ詳細はこちら
メールが届かない場合はこちらをお読みください
Post Footer automatically generated by Add Post Footer Plugin for wordpress.
タグ
リファランス トレードファンクション2014年9月2日 | コメントは受け付けていません。|
カテゴリー:FX初心者EA製作への道