各バッファ番号の中身を取得してコメント表示インジケーターを削除した時のコメント削除コード使用方法と見方ストラテジーテスターでの使い方CodeCheckerとカスタムインジケーターの相互見方まとめiCustom関数とはiCustom()関数を使用すると、指定したカスタムインジケーターの値を返す事が出来ます。カスタムインジケーターとはMT4にデフォルトで入っているインジケーターではなく、外部サイトで入手したり自分で作成したインジケーターの事。shift);各引数の意味は以下になります。symbolインジケーターの値を取得する通貨ペアの指定。通貨ペアを指定する場合は、「気配値表示ウインドウ」の表記通りに記述します。現在のチャートの通貨ペアを指定したい場合は、「NULL」or「_Symbol」を記述します。timeframeインジケーターを取得する時間軸の指定。現在チャートの時間軸の場合「PERIOD_SURRENT」or「0」or「_Period」を記述します。その他は事前定義されているチャート時間軸「ENUM_TIMEFRAMES」を参照。name値を取得したいインジケーター名。インジケーター名は「”」ダブルクォーテーションで囲んで記述します。4...値を取得したいインジケーターの入力パラメータ。インジケーターの「パラメーターの入力」ダイアログに記載されている順番通りにカンマで区切って記述します。パラメーターを指定しない場合は、インジケーターのデフォルト値が使用されます。mode値を取得したいインジケーターのラインインデックス番号。shiftインジケーターの値を取得したいバー位置の指定。現在のバーであれば「0」、1本前のバーであれば「1」...と記述します。iCustom関数で出来る事EA等を作成する際にインジケーターの値を取得したいと思いますよね。短期と長期の移動平均線のクロスをトリガーにしたロジックや、RSIの値が70を超えた時など。そんな時は標準インジケーターであれば、移動平均線ならiMA()関数や、RSIならiRSI()関数を使用する事で値を取得する事が可能です。ZigZagやオリジナルのカスタムインジケーターなどはiZIG()関数やi〇〇()関数という物は存在しません。そんな時に、iCustom()関数を使用する事でそれらのインジケーターの値を取得する事が可能になります。iCustom関数が使えないインジケーターとは万能だと思えるiCustom()関数ですが、残念ながら値を取得出来ないインジケーターも存在します。それはシグナルや値をバッファとして出力しているインジケーターでないとその値を取得出来ません。バッファとは?データを一時的に保存しておくための変数の事です。以下はZigZagインジケーターの一部抜粋です。赤枠部分でライン番号「0~2」の計3つのバッファに値を保存する為の変数が用意されて割り当てられています。iCustom()関数はこのバッファ(ラインインデックス番号)の値を取得する事が出来ますので、バッファに値を保存する過程を踏んでいないシグナル等の値は取得出来ないという事です。実際にiCustom()関数をどの様に使用すれば良いか、iCustom関数を使った無料インジケーターの紹介と、使用する際のポイントについて説明して行きます。ZigZagの山と谷に矢印表示のインジケーターを作成まずZigZagインジケーターとは、MT4に標準搭載されているインジケーターです。ちなみに、以下のような赤線のジグザグ線を描くインジケーターになります。ZigZagはそのロウソク足がロジック上の頂点時にバッファ0と1に値を返し、底辺時にバッファ0と2に値を返します。ZigZagが描画される頂点のみ取得したい場合はバッファ0の値のみ取得すれば大丈夫です。以下の記事はそれを取得して作成したインジケーターとなりますので、コードの書き方など参考にしてみて下さい。ZigZagの頂点と底辺に矢印表示インジケーター(無料インジ)...zyunafx.com2021.11.09ではiCustom関数に使う際に必要なポイントについて説明して行きます。iCustom関数の入力パラメーターを準備iCustom関数のパラメーターというより、iCustom関数で使用するZigZagに渡す値を入力パラメーターから設定出来るようにinput変数で準備します。バー本数);iCustom()関数からインジケーターのパラメーターを指定する事が出来ますが、省略も可能です。その場合はインジケーター初期値が適用されます。Zg=iCustom(_Symbol,_Period,"ZigZag",Depth,0,3);パラメーターを指定する場合に、間のパラメーター指定を飛ばす事は出来ませんので注意して下さい。//この場合はDeviationにBackstepの値が適用されてしまいます。//こういった方法等で引数を飛ばすような事は出来ません。パラメーターの上から順番に引数が適用されると考えて下さい。12345678//この場合はDeviationにBackstepの値が適用されてしまいます。Zg=iCustom(_Symbol,_Period,"ZigZag",Depth,Backstep,0,3);//こういった方法等で引数を飛ばすような事は出来ません。Zg=iCustom(_Symbol,_Period,"ZigZag",Depth,"",Backstep,0,3);※変数名をDepthにしたからと言って、Depthに適用されるという訳ではなくパラメーターの上から順番に引数が適用されると考えて下さい。任意のカスタムインジケーター値を取得するでは実際にiCustom関数を使うには、どのバッファ(ラインインデックス番号)に必要な値が入っているのかが分からないと使用する事が出来ません。インジケーターのmq4データがあれば中身を確認する事が出来ますが、ex4データだと中身を見る事が出来ません。その為、取得したい値がどのバッファ番号に入っているかを調べるインジケーターを作成したいと思います。バッファ番号の中身を調べる方法どのバッファ番号にどの値を入れているか確認する為に、専用のインジケーターを作成します。・Д・)では早速コード全文を見てみましょう。{Comment("");}では順番に見てみましょう。パラメーターでカスタムインジケーター名を設定string型で任意の変数にカスタムインジケーター名を入力出来るようにする事で、パラメーターから任意のカスタムインジケーターのバッファ番号の中身を調べる事が出来るようになります。//インジケーター名その他の期間などの変更したいパラメーターがあれば追加して下さい。各バッファ番号の中身を取得してコメント表示OnCalculate関数内に各バッファ番号の中身を取得してコメント表示するコードを記述して行きます。string型でcom変数(任意名)を宣言します。次にインジケーターによってバッファ番号が何番まであるのか分からないので、今回は適当にfor文のループ処理で20個まで取得するようにしておきます。",iCustom(_Symbol,0,Indicator,i,0),"\n");}i変数はバッファ番号にあたり、iCustom関数でiバッファ番号の値を取得し、”\n”は改行を意味します。“\n”の表記についてブログ記事上では\ですが、メタエディターでは以下の表示になります。StringConcatenate関数とは「,」カンマで区切った引数を連結した文字列に変換する関数になります。最後にコメント出力させます。//コメント出力インジケーターを削除した時のコメント削除コードインジケーターを削除してもコメント文字は勝手に消えてくれないので、インジケーターを削除する直前に動作するOnDeinit関数内に以下のコードを書いておきます。様は空文字で上書きする感じですね。使用方法としては、動いているチャート上にドラッグ&ドロップしてもらうと左上にコメントが表示されます。それだとバッファ番号と現在足で入っている数値だけ表示されるだけなのでチャートが動くまで待たないといけません。そんなに待てないのでストラテジーテスターを使って確認します。ストラテジーテスターでの使い方ここでは重要ポイントだけ紹介します。1:インディケータを選択する。2:今回のコードのインディケーターを選択する。3:ビジュアルモードにチェックを入れる。他:通貨ペアや時間足、期間などはお好みで変更して下さい。※:プロパティで確認したいインジケーター名の入力も忘れないように!設定が完了したら右下の「スタート」をクリックする事で指定期間のチャートが表示されて動き始めます。そのチャートに確認したいインジケーター「今回はAMAngle」をドラッグ&ドロップする事で表示されるので、実際の動作を確認しながらバッファ番号と中身の値を確認する事が出来ます。ビジュアルモード横にあるバーを左右に動かしてチャートの進行速度を調整する事が出来ます。その横には一時停止ボタンがあります。一度押せば再生になります。※間違えて右下の「ストップ」を押さないようにして下さい。完全に止まりますwCodeCheckerとカスタムインジケーターの相互見方バッファ番号と中身が見えても、どのバッファに欲しい情報が入っているかが分からないのでその確認方法です。表示しているインジケーターをダブルクリックするとパラメーターウインドウが表示されますので、その中の「色の設定」タブを表示するとどの線がどの表示されているのかが分かると思います。※幅やスタイルを変更してみるとより分かりやすいです。このAMAngleインジケータは、バッファ0が移動平均線のライン、1が買い矢印、2が売り矢印となっていますので、例えば上矢印が出たタイミングで買いエントリーしたい場合は以下のようなコードになります。※上画像では下矢印が出現している時、バッファ2に価格が入っていて、バッファ1は0になっているのが確認出来ると思います。//バッファ番号1=買い矢印が出現するタイミングには価格が入る。}12345678//バッファ番号1=買い矢印が出現するタイミングには価格が入る。UP2==0){買いエントリー}ちなみに注意として、このコードを現在足「0」と1本前で書いてしまうと、現在足はまだ確定していないので値動きによって上矢印が表示したり消えたりします。その度にエントリーしてしまうような事が起きてしまうので注意して下さい。まとめiCustom関数はプログラム初心者は使わない方が良いとよく記事を見かけますが、とても便利なので使ってみて下さい。使用する際には注意して下さい!先ほどの説明した通り、取得する値の足を間違えたEAを作成すると簡単に破産するEAを作ってしまう事もありますので、バックテストでの動作確認。デモ口座での動作確認は必ず必要です。ネットにあるインジケーターをiCustom関数を使って動かす際にも、中身が見えない場合ので意図しない動作が含まれている可能性もあります。いった事を踏まえて、プログラム初心者は使わない方が良い。YouTubeでトラリピEAを作成する作業配信、第3回で作成した最後半のトラリピの説明をして行きたいと思います。YouTubeでトラリピEAを作成する作業配信を行いました。YouTubeでトラリピEAを作成する作業配信、第3回で作成したトラリピの説明をして行きたいと思いま。今回はIF関数の書き方についてまとめて行きたいと思います。以下からはif文と呼んで説明させて頂きます。YouTubeでトラリピEAを作成する作業配信、第3回で作成したトラリピの説明をして行きたいと思いま。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。date*日本語が含まれない投稿は無視されますのでご注意ください。゚д゚)2013年:FXと出会い、独学で初めて入退場を繰り返す。2017年:裁量は諦めて自動売買の勉強を始める。2019年:Twitterで仲間が増える。2020年:インジケーター販売開始。Reserved.ホーム検索トップサイドバータイトルとURLをコピーしました。