3日目は CalculateLots() の話しです。私個人は豊嶋先生のライブラリを使っていないのですが、EAのソースコードについて相談しに来られる人が高確率で利用されていて、悩むところも同じようなので、改造例を紹介します。 ↑普通のFX口座では問題無いコードでも、以下のいずれかの条件を満たす口座では意図した動作をしません。 (1) 接尾辞の付いた通貨ペア (USDJPYFXF..) (2) 円建て口座で conv が取得できなかった場合 (3) 変則的な最小ロット設定 変則的な最小ロット設定とは、注文可能な最小ロットが 0.1 なのに、ロット変更単位が 0.01 という..FXopenのおかしな設定のことです。そんな例外事例に対応する意味はあまり無いので、その辺りは興味のある人だけ続きをどうぞ..。 さて、下記の改造例ですが、(1) は、こちらで解説されています。 (2) は、ドル建て口
昨日紹介した応急処置は、 //if(lots != 0) break; これだけで、売り1/買い2 になった状態で買いシグナルは止まります。 ですが、基本的に1ポジションしか取らないことを前提にしたEAでこれはあまり良くないので、正攻法な直し方を紹介します。 今回の問題の本質は、MyOrderClose でポジションのクローズに成功したのか?確認せずに、新規ポジションを建ててしまう点にあります。 なので、以下のように直すのが自然です。これが正統派..というか、理解しやすいですよね。 …とはいうものの、MyOrderClose 内でも OrderSelectのループが回って、MyCurrentOrders 内でもOrderSelectのループが回るのは処理が重複しており、バックテストや最適化に時間が掛かる一因にもなります。私が手直しするとしたら、MyOrderClose のポジションが無かっ
豊嶋先生の著書「FXメタトレーダー実践プログラミング」は、プログラミングの超・初心者には、日本語で読める資料としてかなりお勧めです。シンプルなロジックの組み立てから、実際に売買できるEAを作り上げるまでのステップは楽に進めると思います。 (但し、英語が得意で、プログラミング経験のある人には物足りないでしょう...^^; この本の中には、便利な関数をまとめたMyLib.mq4 や、EAのサンプルがいくつか収められているのですが、それらを元にEAを作りこんでゆくと、思わぬ落とし穴に嵌る危険性があります。そういう問題は、本文中にも一部記述があるものの、初心者にはなかなか気付きにくいので、具体的に説明してみたいと思います。 (他人の書いたコードを批判するみたいで申し訳ないのですが..、相場で高い授業料を払う人が出るのも可哀想ですので...^^; まずは、BBCross1.mq4 に使われているMy
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く