パンローリング トップバー パンローリング Top 相場データCD-ROM オプション倶楽部 トレーダーズショップ/書籍、DVD販売 株式コーナー Pan発行書籍 セミナー 相場アプリケーション パンレポート 掲示板 相場リンク集
メールはこちらまで

通勤のお供に投資の仲間たち携帯版を 携帯版 投資の仲間たち

パンローリング 投資の仲間たち

浜口準之助 林知之優利加太田 創羽根英樹 |  村居孝美 鎌田傳 片岡俊博 ニック 青木智(株の達人)

たけぞうの50億稼いだ男のメルマガ 石原順のメルマガ マーケットの極意 中原圭介と岡村友哉の投資を学ぶ 杉村富生の月刊 株式マガジン イベント投資倶楽部 【オプション倶楽部】OP売坊戦略コース バカラ村式 FX短期トレードテクニック パンローリングチャンネル ファクター分析投資スクール 2024年12月開講 投資戦略フェア EXPO2025


開催予定のセミナーDVD一覧お買い物ブログのホームに戻る

豊嶋久道


1965年山口県生まれ。1988年慶應義塾大学理工学部電気工学科卒業。1993年慶應義塾大学大学院博士課程修了。博士(工学)。大学生のころからC言語プログラミングに親しみ、実用系のフリーソフトウェア、シェアウェアを公開。2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めた売買システムの研究を行っている。主な著書に『FXメタトレーダー入門』 『FXメタトレーダー実践プログラミング』(パンローリング)がある。
著者WEB:Toyolab FX―手ぶらで為替取引

豊嶋久道の「メタトレーダー実践日記」

「FXメタトレーダー実践プログラミング」第3刷

03月24日
おかげさまで「FXメタトレーダー実践プログラミング」も第3刷が近日中に発行されます。

今回、本書で修正点がありますので、ご報告いたします。

修正箇所は2箇所です。

222ページ8行目の
// 注文待ち時間(秒)
extern int MyOrderWaitingTime = 10;

の部分を削除して、223ページ7行目に
// 注文待ち時間(秒)
int MyOrderWaitingTime = 10;

として挿入します。

これは、サンプルプログラムの MyLib.mqh と MyLib.mq4 の変更になりますが、特に致命的な不具合があるわけではありません。

修正の理由を簡単に説明します。

そもそも MyOrderWaitingTime という変数は、218ページで説明してあるように、オーダー送信時にエラーでループが無限に繰り返されるのを防ぐために、ループを抜けるための最大待ち時間を秒単位で指定するものです。

初期設定では10と設定されているので、10秒間エラーが続くと、ループから抜けるようになっています。

この設定は頻繁に変えるものではありませんので、初期設定のままで問題なければそのまま利用されて結構です。

元のプログラムでは、MyOrderWaitingTimeの値をチャートに挿入したエキスパートプログラム(EA)のプロパティから変更しても、それが実際に反映されないという不具合があります。

実は、ライブラリープログラム中で利用される外部変数の値はEAのパラメータとして直接は変更できないのです。

なので、修正版では、その不具合を避けるために、MyOrderWaitingTime がEAのパラメータには現れずに、ライブラリープログラムの中だけで使えるようにしたのです。

ですから、変数 MyOrderWaitingTime の値を変更したい場合は、MyLib.mq4の
// 注文待ち時間(秒)
int MyOrderWaitingTime = 10;

の部分を直接変更することになります。

このように実際には不具合を修正したわけではないのですが、増刷では、改訂箇所が大幅に増えると面倒なので、必要最低限の修正だけを行いました。

もし、MyOrderWaitingTime などライブラリープログラム中で利用される外部変数の値をEAのパラメータとして変更して使いたい場合、以下のように別の関数を作るなどいくつかの手順が必要になります。

その流れを簡単に説明します。

まず、MyLib.mq4 の中に
void SetMyOrderWaitingTime(int t)
{
MyOrderWaitingTime = t;
}

という関数を追加します。そして、その関数を MyLib.mqh の #import ブロック中に
void SetMyOrderWaitingTime(int t);
として追加します。この関数はパラメータ t の値を MyOrderWaitingTime に代入するだけのものです。

そして、この MyLib.mqh を #include 命令で読み込んだEAで SetMyOrderWaitingTime() を実行すると、MyLib.mq4 中の MyOrderWaitingTime を変更させることができます。

実際には、EAのプログラム中で
extern int WaitingTime = 10;
などと宣言し、その中の init() 関数中に
SetMyOrderWaitingTime(WaitingTime);
と書いておけば、EAのパラメータとして変更した WaitingTime の値が MyLib.mq4 中のMyOrderWaitingTime に設定されることになります。

ちょっとややこしいのですが、興味のある方はご参考にしてください。
コメント投稿

メタトレーダー4のダウンロード

03月10日
「FXメタトレーダー入門」では、MetaQuotes社のサイトからメタトレーダー4をダウンロードするよう説明しています。

ところが、最近のMetaQuotes社のサイトでは、メタトレーダー4をダウンロードできるページが探しにくくなっています。

ダウンロードサイトは色々なところからリンクされているのですが、次のページがわかりやすいんじゃないかと思います。

MetaQuotes社が提供しているメタトレーダー4のオフィシャルサイトです。

http://www.metatrader4.com/

オレンジ色で「Free download」というボタンがあるので、それをクリックしてダウンロードしてください。
コメント投稿
ページのトップへ


豊嶋久道氏の著書

FXメタトレーダー
実践プログラミング

高機能システムトレードソフト超活用術

FXメタトレーダー入門
最先端システムトレードソフト使いこなし術

過去のブログ

  • 11年09月
  • 11年04月
  • 11年03月
  • 10年12月
  • 10年10月
  • 10年09月
  • 10年08月
  • 10年06月
  • 10年03月
  • 10年02月
  • 10年01月
  • 09年12月
  • 09年10月
  • 09年09月