やってみよう!簡単インジケータ作成2http://mt4program.blogspot.jp/2015/12/mql-005.html前回からの続きです。価格チャートだけ表示するインジケータの枠だけ作成されました。ここから、プログラムを書くことで、いろんなチャートを描くことができます。前回の記事で作成したHeikinインジケータの下の部分に注目です。OnCalculateと書いてある部分があります。そこに赤字の部分を入力して実行してみてください。}//+------------------------------------------------------------------+前回と違い、今回は赤い線がチャートに表示されていると思います。高値安値の中間を描画する。(?)インジケータ作成成功です。高値安値の中間値を線でつなぐインジケータが完成しました。修正箇所は4行ほどですが、インジケータ作成に大切な要素が含まれています。一つずつ説明したいと思います。}ある一定回数、同じ処理を行うときに使用します。再初期化式){繰り返し行う処理}といった形になっています。]変数宣言と、初期化を行います。今回は、[i]という名前の変数を宣言したのち、[rates_total-1]の値に初期化しました。]変数[i]の中身が0より大きい間、繰り返しを行います。]再初期化式は、一回の処理が終わるたびに呼び出される処理です。今回は、一回の処理が呼び出し終わるたびに、iの値を一つ減らします。囲われた部分があります。これをブロックと呼びます。{}で囲われた部分を条件に従って繰り返し実行します。図で書くと、このような流れになります。処理の流れほとんどのインジケータでは、for文を使用します。閉じた中にiと指定されて、計算式が書かれています。この[]で数字を指定して、中身を見たり書いたりできる変数のことを配列と呼びます。この配列もインジケータ作成時にはとても重要です。配列は、変数の箱が、たくさん横に並んだ物と考えてください。上記の式では、Label1Bufferのi番目の箱に、highとlowのi番目の箱の内容を足して2で割った物を入れています。配列操作インジケータでは、この配列操作と、繰り返し制御文を使いながら様々なチャートを描画します。次回は、変数についてもう少し掘り下げたいと思います。書いてある、[int]ってなに?というあたりを予定しています。今年のブログ更新は、これが最後です。皆様、よいお年を^^次の回へブログランキングにご協力よろしくお願いします。やってみよう!簡単インジケータ作成1プログラムを覚える基本は、とりあえずやってみることです。作ってみて失敗して、また作るといった繰り返しができることがソフトウェアの良いところです。※余談リアル口座を運用しているMT4を使用する場合、ソフトウェアの作成に失敗すると、取引に影響が出ます。そこで、プログラム開発用にMT4のデモ口座を作ることをお勧めします。[雑記]MT4のデモ口座はどこがいい?http://mt4program.blogspot.jp/2015/12/mt4.htmlなどから、プログラム開発用のデモ口座を開き、プログラムはデモ口座が動いているMT4上で作ることをお勧めします。説明の記事が2回続きましたので、足りていないところは後回しにして、とりあえず、インジケータを作成してみましょう。メタエディター上で下記の通りに操作してみてください。ナビゲータ上で、[Indicators]を一度クリックして青反転表示になった所で、マウスの右クリックから[新規ファイル(N)]を選択します。新規作成MQL4ウィザードにて[カスタムインディケータ」を選択した状態で、[次へ(N)]をクリックします。名前の箇所に[Indicators\heikin]と入力して[次へ(N)]を押します。※heikinの箇所は半角英数字であれば好きな名前で問題ありません。ブラウザの環境によってIndicatorsとheikin間の記号が¥マークではなく、バックスラッシュ(/の反対)に表示されてしまっているかもしれません。Indicatorとheikinの間は¥マークです。名前の決定[次へ(N)]をクリックします。カスタムイベントハンドラの選択インジケータに描画する変数を追加します。[追加]をクリックします。最後に[完了]をクリックして終了です。後とりあえず、やってみようですので、細かい説明は次の機会ということにして、これでインジケータが出来上がりました。world!を参考に、実行してみてください。MT4でインジケータを表示するときに出てくる、いつもの初期画面をOKすると、価格情報以外何もないチャートが表示されているかと思います。プログラムを止めてみましょう。メタエディタ上で赤い停止ボタンをクリックしてください。停止MT4でチャートが消えたかと思います。インジケータの作成~実行~停止まで、一通り行うことができました。何も表示されないインジケータでは楽しくないため、早速プログラムを作ってみましょう。長くなりましたので、次回に続きます。次の回へブログランキングにご協力よろしくお願いします。代入式を説明したいと思います。■コメントこれは、プログラム上何もしない文字列です。・・・・?なぜ、こんなものがあるのかというと、作っているときは覚えているのですが、あとから見たときにわからなくならないよう、自由な文字列を入力できるようになっています。コメントがきれいに書かれているプログラムは、後から見直したときに、なぜ、こんな処理をしたのかを思い出しやすくなります。MQL上、コメントは、次の二つの書き方があります。1行コメント/*ブロックコメント*/スラッシュを二つ続けて記入すると、その後ろの文字列は、改行が入るまで、コメントとして扱われます。*/で囲った範囲も同じようにコメントとして扱われます。コメントは、プログラム上何もしない文字列ですので、言語に関係なく自由に記載することができます。定数から、代入式までは、一度に説明したいと思います。定数とは、1や10など値そのものを指します。変数は、中の値を変更できる箱と思ってください。計算式は、+-など四則演算を含む様々な計算をしている式です。代入式は、変数の中身を変える式です。一度に説明しましたが、中学数学の方程式を思い出すと、イメージが付きやすいかと思います。具体的なコード例とイメージ図です。変数へ、定数の1を代入する。1が設定されているxに2を足すため、yは3になる。yには3が入っていて、3を足すので、yは6になる。次の回へブログランキングにご協力よろしくお願いします。プログラムの基本を学ぼう。入力+処理=>出力いよいよ、プログラムに入っていきたいと思います。超入門ということで、基本的な考え方から入ります。プログラムは、基本的な構造が決まっています。それは入力+処理=>出力という考え方です。入力は、マウスのクリックや、価格情報のことを示します。処理は、入力に対する計算など、何か変更や計算を行うことです。出力は、画面の表示や、ポジション操作をことです。入力+処理=>出力のイメージプログラムは、この3つの要素を考えることが一番最初の作業です。MQLでは、出力はわかりやすいです。MT4としてインジケータとしてチャートを表示したいのか、EAとしてポジションを自動売買したいのかが決まるためです。どのような入力をもとに、どんな処理をして、チャートの表示や自動売買を行うか?という事を考えます。入力は主に価格の情報となります。そのほかいろんな情報を入力することは可能ですが、MQLでは価格が一番簡単に入力として扱える情報となっています。そこで、第一ステップとして価格を入力して、何か処理をして、チャートを表示する。いう流れを勉強していきたいと考えています。処理については説明しませんでした。この部分がプログラムの一番大切なところであり、また難しいところです。この処理を行えるようになるための、基礎的な知識が必要です。代入式という、プログラムには欠かせない、計算処理について説明したいと思います。次の回へブログランキングにご協力よろしくお願いします。瞬間的かい離で利食い&逆張りタイミング?相変わらずの逆張り大好きっ子です。えぇ日々逆張りに使えないかどうか考えています(笑)移動平均に対するかい離率ですが、ラインからのかい離率というのは、どの程度まで行くのか予測が難しいところがあります。瞬間値的なかい離なら、ある程度制限されるのではないかと思い、TEMAに対してのかい離率をグラフにしてみました。計算式は下記の通りです。1000を中心に上方向にかい離している場合は+、下方向にかい離している場合は-となります。・・・まぁ裁量トレードの方はチャートを見たら一目なので、あまり必要ないかもしれません。どちらかというとシステムトレード派の方の利食いタイミングなどの測定向けかなぁとは思っています。Gewinn6でも利食いタイミングに使用しています。これを使って逆張り仕掛けたらどんなもん?と思って、超単純にバックテストで実験してみました。1Hにて、0.5%/-0.5%を超えたのち、0.5/-0.5を再び下回った際、ポジションを24時間保持した場合の結果です。ストップとか利食いとか全く考えず24時間後に閉じる単純ロジックです。利食いも損切も全く考えてない状況で、単に24時間後にクローズするだけで+引けはなかなかです。5年で取引回数が50回を下回ってますので、かなりサンプルが足りないですよね。1Hでも同じく+引けしました。考え方をまとめてちゃんと組めば、もしかしてそれなり?プロぐランキングにご協力よろしくお願いします。world!まずは、第一歩を踏み出してみましょう。メタエディターを立ち上げて、下の通りに操作してみてください。メタエディター左側にある、ナビゲーターと書いてある小さい枠内の[Scripts]と書かれている個所を、マウスでクリックします。Scriptsの文字が青く反転しますので、その状態でマウスの右クリックを行い、[新規ファイル(N)]をクリックします。ウィザードという画面が表示されますので、[スクリプト]が選択されていることを確認して、[次へ(N)]をクリックします。書かれていると思います。¥マークの後ろに[Test]と追加して、[完了]をクリックします。英語っぽい、いろいろ書かれた画面が表示されれば、新規ファイルの追加は成功です。テストスクリプトの画面さて、まず日本語が入力可能かどうかを確認します。新しく追加したファイルの適当な箇所を一度クリックした後、[あいうえお]と入力してみてください。画面左上に[あいうえお]と表示されたら、[Enter]キーをおします。あいうえおを入力メタエディター上に、正しく[あいうえお]が表示されればOKです。わからない文字に変化したり、□が表示されたりする場合は、フォント設定を行います。あいうえおを入力フォント設定は、オプションから行います。メニューの[ツール(T)]→[オプション(O)]を選択します。オプション画面の表示オプション画面が表示されたら、フォントと書かれているところをクリックします。ゴシック]を選択したのち、スクリプトの箇所にて[日本語]を選択します。最後に[OK]をクリックします。フォント設定さぁ、ここまでで準備完了です。worldという文字列を表示するというのが恒例行事となっています。worldを表示してみましょう。赤字の部分をそのまま入力してみてください。先ほど入力した[あいうえお]は消してください。}//+------------------------------------------------------------------+赤字の部分を入力したら、メタエディターの実行ボタンをクリックしてみましょう。緑色の再生ボタンのようなマークです。worldと書かれたメッセージが表示されたら成功です。さぁまず第一歩を踏み出すことができました。実行結果このように、文字列を書いて、それを動かすことを「プログラムを実行する。MT4では、MQLと呼ばれる言葉を使ってプログラムを書くことができます。この言葉を駆使して、さまざまな取引や解析を行うことで、一歩進んだトレードが可能になります。world");と書いた部分を確認してしてください。すべて半角文字の必要があります。全角文字が入力されていると正しく実行できません。全角スペースと半角スペースは見分けが付きませんので、特に注意してください。MT4プログラミング2015年12月18日金曜日Gewinn6をFX-ONに送信しました。先ほど、FX-ON様に登録してきました。FX-ON様のフォワードで成績が良ければ、またご案内させていただきます。最終的にはこんな感じ。寝ている間に損切のアルゴリズムを思いついた為、先日実装してみました。効果がありそうでしたので、これでいったん公開します。複利運用と利益状態を見てのロット制御を入れています。複利運用のリスクは、最大損失の130pipsが発生した場合、口座残高の3%が失われる初期設定となっています。5%とかにすると、5年間の利益が3000万とかになります・・・。メタエディターを立ち上げてみようブログネタが手持ちで尽きたのもあり、せっかくなので、勉強した成果を公開したいと思います。MQL超入門記事を連載始めます。皆さまMT4はインストール終わっている所からスタートです。MT4の導入については、各業者様のページに詳しく掲載されていますので、そちらをご覧ください。MT4ではプログラムと呼ばれる物を使い、自分で考えた様々なことを実行できます。準備としてメタエディターと呼ばれるソフトウェアが必要です。メタエディターの起動MT4のメニューから[ツール(T)]→[メタエディタ-(E)]を選択します。MT4の適当な箇所をマウスでクリックした後F4キーを押します。すると、英語で書かれた、何かウィンドウが立ち上がってます。これがメタエディターと呼ばれるソフトウェアです。このメタエディター上で様々なプログラムを作ることができます。メタエディターメタエディターですが、最初は英語となっていて、少し使いにくいです。日本語モードが用意されていますので、日本語に切り替えたいと思います。メニューから[View]→[Languages]→[Japanese]を選択します。再起動を確認する英語のメッセージが表示されますので[Restart]ボタンをクリックします。メタエディターの言語を日本語に切り替える。再起動の確認すると、日本語になってもう一度、起動します。日本語のメタエディターこれで準備は完了です。フォント設定という物が必要な場合がありますが、これは問題があった場合のみで構いません。デフォルトの設定でも日本語表示および入力可能です。デフォルトが一番綺麗です。メタエディタの準備が終わりましたので、次回、早速なにか動かしてみたいと思います。フォント設定についても、次回に説明します。このあたりで、いったんリリースします。1FX-ONの計測期間のことも考え、明日いったんFX-ONに登録したいと思います。1ポジション両建てなしで運用します。波を測定して、反転のタイミングで逆張りを仕掛けます。波形が崩れて強いトレンドと判定したときは取引を中断します。損切は、65pips~130pipsを基準に、前回高値安値±5pipsのところに設定します。ATRを使用したトレイリング機能が付いています。利益がある程度で始めたところからトレイリングが開始されます。Gewinn2での反省点も含めて、まず基本ロジックで、FXDD、TickStory、Alpariとある程度データがそろっている物から、いちばん成果が悪かったAlpariを基準でバックテストを行いました。名前の横の現在値を消す。(追記)ごめんなさい。プログラムミスってました。