記事を新しい仕様で書き直しております。旧仕様の記事になります。旧仕様の記事でも一部を除き基本的にはシステムの制作に問題はありません。今回は「SL、TPの設定」について説明します。SLはストップロス(損切り)、TPはリミット(利食い)のことです。サンプルプログラムはこちらです。Zip圧縮していますので解凍してご利用ください。SampleTPSLダウンロードサンプルプログラムの使い方は、以下の記事で説明しています。今回やるのは、他の人が作ったシステムの導入方法です。次回から、内容が少々複雑になりますので、サンプルプログラムを作ってダウンロード出来るようにしておきます。そのプログラムを使うための方法です。...jidoubaibai.comTPSLを設定する上での注意MetaTrader4では、ポジションを取得すると同時にTPとSLを設定していると、エラーが発生し、注文がキャンセルされる仕様となっています。ポジションを取得する時には、TPとSLを設定をせずに、ポジションを取得した後で設定する必要があります。今回はMA(移動平均線)のゴールデンクロスで買い、デッドクロスで売るシステムのTPとSLをポジションを取得した後からつけるプログラムを紹介します。決済はSLとTPのみで行い、ドテンは行いません。ポジションを取るプログラムの説明では、MetaEditorを起動して下さい。NameはTPSLなどにして下さい。まとめてコードを書きますので、同じようにコードを半角英数で書いていってください。説明したiMA関数を使い、MAのゴールデンクロスとデッドクロスでポジションをエントリーし、その後にSLとTPを設定するプログラムになっています。先に後半のポジションを取るプログラムの説明です。}ここでは、ポジションを持っていない時にMAがゴールデンクロス、またはデッドクロスと判定された時にポジションを取るようになっています。前回と違う部分はデッドクロスで売りポジションを取得するようになっていります。売りの場合はOrderSend関数の中身のOP_BUYの部分をOP_SELLに、Askの部分をBidにしてください。矢印の色を変える場合はclrBlueをclrRedに変えてください。次に、前半のポジションを持っている場合にTPかSLが設定されていない場合に新たに設定する為のプログラムです。NormalizeDouble関数です。プログラムの内容は、取得中のポジションにSLかTPの設定がない場合、エントリーレートから20.0Pipsの地点にTPとSLを設定するというものです。OrderOpenPrice関数は、ポジションのオープンレートを調べる関数です。OrderStopLoss関数は、ポジションのストップロス値を調べる関数です。OrderTakeProfit関数は、ポジションのリミット値を調べる関数です。OrderTicket関数は、ポジションのチケットナンバーを調べる関数です。NormalizeDouble関数は、数値を指定する小数点桁数で丸める関数です。指定の小数点未満の数値がある時に不都合がある場合に使います。MediumSeaGreen);上記がOrderModify関数です。注文の内容を変更するのに使われる関数となっています。表示される色)個別に説明していきます。チケット番号は変更する注文のチケット番号を選択します。指値は指値を変更するときなどに使います。今回はオープンレートが入っていますストップロス値はここに入力された数値をストップロスにします。リミット値はここに入力された数値をリミットにします。有効期限は指値などの未約定の注文の有効期限を指定します。表示される色は色の設定です。今回はSLとTPを変更しています。エントリーレートから上に20.0Pipsのレートをいれています。OrderOpenPrice()がオーダーセレクトで指定したポジションのエントリーレートを取得する関数。Pointは現在のチャートの通貨ペアのレート最小単位の値を取得します。ドル円が100.000の場合はPointは0.001、ユーロドルの場合1.11111の場合はPointは0.00001になります。Pointは0.1Pipsになります。(もうほとんどありませんがドル円が少数点二桁の証券会社の場合は100.00となりPointは0.01、ユーロドルの場合1.1111の場合はPointは0.0001になります。NormalizeDouble(tp_rate,Digits);NormalizeDouble関数はNormalizeDouble(数値,少数点の桁数)と設定し、戻り値で数値を小数点の桁数で丸めたものを返します。NormalizeDouble(1.123,1)の場合、戻り値は1.1になります。今回の場合あまり意味のない処理に見えますが、この処理をしないでOrderModify関数を使用した場合エラー1が出ます。少数点未満の数値が入っている場合不具合になるようなケースでは特に変数に入れる数値に使用する少数点未満の数値が入っていない場合でも念の為NormalizeDoubleによって指定小数点の桁数で数値を丸めておくほうがいいです。)このif分はもし今から設定するSLとすでに設定されているSLが同じレートでなければ、というものになります。同じレートを何度も設定し直さないための処理になります。戻り値を変数に入れない場合警告が出るのでその対策で入れています。他にもこの戻り値が1の場合はOrderModifyによる変更が成功、0の場合は変更が失敗と分かりますので、その対策をする場合などは使用します。今回はこれで終了です。OrderModify関数は出来ることがたくさんありますので、是非マスターしてください。内容には注意を払っていますが、保障は出来ません。実際に運用する場合は、自己責任でお願いします。二次元配列について今回の記事ですが、「二次元配列について」です。以前、配列の紹介をさせて頂きましたが、今回はその次のステップになります。(配列の紹介は下記からご覧いただけます。以前の記事は下記を参考にしてください。前回はiMA関数の説明でした。今回は残りの注文を出すときの関数の説明をします。今回は、ドテン売買のシステムの説明です。サンプルプログラムはこちらです。Zip圧縮していますので解凍してご利用ください。4で使える簡単なテクニカル分析を紹介していきたいと思います。一言でテクニカル分析と言っても、沢山種類があります。今回はその中でもメジャーなテクニカル分析の紹介に絞らせていただきます。今回から、いよいよ実際に自動売買出来るシステムの製作に移って行こうと思います。あまりにも長くなってしまいましたので、前編後編で分けます。プログラム初級編Blud600以降の警告について今回の記事は、「Blud600以降の警告について」です。Buld600以降になってから、Buld600以前では問題がなかった内容でもMQL4でコンパイルすると警告が出るようになりました。プログラム初級編オーダーシステムお客様から売買ルールをお聞きして制作代行するサービスも行っています。詳しくはこちらメルマガFXで完全自動売買を行える自作システムの作り方を出来るだけ分かりやすく順を追って説明していきます。※携帯メールアドレスではご利用頂けません。登録フォームメルマガの解除はこちら。4の導入プログラム入門編プログラム初級編プログラム中級編システムトレード実践編オーダーシステムプロフィールお問い合わせリンクについて利用規約ホーム検索トップサイドバーオーダーシステムお客様から売買ルールをお聞きして制作代行するサービスも行っています。詳しくはこちらメルマガFXで完全自動売買を行える自作システムの作り方を出来るだけ分かりやすく順を追って説明していきます。※携帯メールアドレスではご利用頂けません。登録フォームメルマガの解除はこちら。EAのテラスシステムトレード徹底比較プログラマーなFX~完全自動売買への道~メタトレ!完全自動売買のススメ為替王タイトルとURLをコピーしました。