« 2005年08月 | メイン | 2005年11月 »

2005年10月28日

プログラミング

ではいよいよ、最も敷居が高い(?)プログラミングに入ります。

といってもそれほど身構える必要はありません。
要は、「こうなったらああしなさい」 ということを決められた書式で書くというだけのことです。
この書式がいろいろ細かくてごちゃごちゃしているように見えるかもしれませんが、おおまかなルールが分かってしまえばあとはなんとかなります。
エクセルのマクロやJava、C言語などのプログラミング経験者の方には特に簡単です。

【プログラミングのルール】
すべてアルファベットで記入(日本語は使えない)日本語使えます
②文末はセミコロン(;
③コメントアウトは///**/
④変数は型を決めて宣言が必要
⑤変数は大文字と小文字の区別がある


まず①、そのままですね。日本語使えました。デフォルトの設定のままだと文字化けするので、MetaEditorのTools>Options>Font で日本語のフォント(例:MSゴシック)を選択して下さい。

②もそのままです。一文の終わりには;をつけます。
例: i=3;
   j=4;
  (iの値は3にします、jの値は4にしますの意味)

一文を何行かにわけて書くことも出来ます。
例A: i=3;
例B: i
    =3;
  (A,Bどちらも同じです)

③あとで見直すときのために、プログラム中に説明文やコメントを書いておきたい時に使います。
// と書くと、そこから行の終わりまでが、無視されます。
例: i=3;
   //i=2; この行は無視
   j=4; //j=5;←これも無視
  (太字の部分のみが有効。結果、jは4になる)
/**/ で囲むと、その部分がまとめて無視されます。一行ずつ//を入れるのが面倒くさいときに使います。
例: /* i=3;
    j=4;
    全部無視!
   */

④変数は自分で自由に作れますが、一番最初使う前に、こういう変数を使いますよということを宣言しておく必要があります。
上の例ではいきなりi=3とか書いてますが、本当なら、
 int i;
 i=3;
 i=i+1;
というふうに、「int i;」でiという変数を使いますということを宣言しておかないといけません。これは使い始める前に一回だけでOKです。
また、int は整数のことで、iには整数しか入れませんよ、という意味でもあります。もし小数を使いたいなら、「double i;」のようにdoubleを使います。
 double i; 
 int j,k; //,でつないでまとめて宣言もできます
 double l=0.5; // 宣言と同時に初期値の代入もできます
 i=3; //doubleは整数も扱えます
 j=0.5; //←jは整数として宣言していたのでこれはだめです
他に、文字列を扱うstring 、真か偽か2通りの値しか入らないboolがあります。
 string i="abc"; //文字列は""で囲みます
 i=i+"def"; //結果、i="abcdef"

 bool j;
 j=true; // 真がtrue 偽がfalse

⑤変数は大文字小文字の区別があるので、変数iと変数Iは別物です。
 int i,I;
 i=0;I=1;

 int Hensu; //変数は2文字以上でもOK
 string hensu; //Hensu ≠ hensu

【プログラム実行の流れ】

プログラムは、基本的に上から一つずつ順番に実行されます。
例えば、
int i=1;//整数iを宣言して、1を代入。
i=i+8;//i(=1)に8を足した値を新しいiの値(=9)とする
i=i*5; // *はx(掛ける)の意味。i= 9x5=45
Print(i); //Print(~)は~の値を画面に表示
 //iの値、45が表示される。(TerminalウィンドウのExpert欄に)

という具合です。

*①の補足:
変数名や関数名にも日本語を使えますが、あまりおすすめはできません。
全角スペースはスペースではなく文字として認識されます。
変数名に日本語を使うと、うっかり全角のスペースを入れてしまうというミスをしやすくなります。

int あ = 1;
あ = あ + 1;

これはNGです。ぱっと見では何が間違っているか分からず混乱してしまうのですが、
1行目では”あ”ではなく”あ ”(あ+全角スペース)という変数を宣言したことになり、
2行目で「変数”あ”が宣言されてません」というエラーが出ます。
2行目だけをいくらみても原因がわからないので、混乱してしまいますね。


投稿者 kawarobo : 01:32 | コメント (0) | トラックバック

2005年10月20日

取引履歴を公開する方法

MT4での売買の状況を、自分のサイトで公開することが出来ます。

現在のポジションや、これまでの取引履歴、残高などが簡単に見れるので、外出先から自動売買の状況を確認することができます。

また、自動売買・手動売買に関係なく使えるので、ブログで自分の売買を公開したいというときにも非常に便利だと思います。(5分ごとに更新されるので、ほぼリアルタイムに取引状況を公開できますね)

MT4のPublisherという機能を使うと、statement.htmという取引履歴ページを自動的に作成し、ホームページにアップしてくれます。
こんな感じですhttp://kawarobo.fc2web.com/statement.htm
(これは例なので更新していません)

自分のホームページをもっていない場合は、無料で使えるfc2がよさそうです。

<設定方法>
①MT4のメニュー
 Tools>Options>Publisher
を開きます。
②Enableにチェックを入れて、AccountにMT4のアカウント番号を入力します。
③履歴ページをアップしたいサーバーの、FTPサーバー、FTPパス、ログイン名、パスワードを入力。
「Passive mode」のチェックは無しです。
④Refresh every~minutesで履歴ページを更新する頻度を決めます。最短は5分です。

 例)


Testボタンを押して、履歴ページが正常にアップされているか確認します。
正常なら「Report was successfully queued!」のメッセージが出て、statement.htmファイルがアップされているはずです。
上の設定例(FC2Web)では http://kawarobo.fc2web.com/statement.htm に履歴ページがアップされます

これで②で指定したアカウントの取引履歴が自動的にアップされるようになります。


取引履歴のページが英語で見にくい、味気ない、という場合にはテンプレートを編集すると良いでしょう。
MT4のインストールフォルダにあるtemplatesフォルダを開いてください。
(C:\Program Files\MetaTrader 4\templates)
ここにある statement.htm が取引履歴ページのテンプレートになっています。
これをメモ帳やエディタなどで開いて、自分で見やすいように編集します。
*編集前にファイルのバックアップをとっておいたほうが良いと思います。

 テンプレートの仕組みはブログなどと同じような感じで、<!-- -->で囲まれた部分に実際のデータが挿入されます。
 テンプレートで 「現在残高 <!--EQUITY-->」 と書くと、
 「現在残高 5226.88」 のように表示されます。
 
テンプレート例:(ファイルを解凍してできるstatement.htmをtemplatesフォルダに上書き)
 ・手抜き日本語化 テンプレート表示例
 ・詳細履歴(英語) テンプレート表示例
 ・現在のポジとオーダーのみ テンプレート表示例


投稿者 kawarobo : 12:43 | コメント (0) | トラックバック