こんにちは!キリンです。
今日から一週間に一回くらいの更新頻度を目標に、
MT4プログラミング講座を更新していきます。
キリンによる直感的プログラムの作成方法をつらつらと書いこうと思っています。
元々プログラマーではなかったため、
皆さんが躓きやすいところは熟知しているつもりです。
そういったところを重点的にお教えできればと思っております。
皆さんの日々のトレードのお役に立てれば幸いです。
さぁ、始めましょうか!
まず、この口座の当面の目標は、
「移動平均線のインディケーターを自力で作成する」
ことにしたいと思います。
「プログラムなんて簡単だ!」って思ってもらえたら、最高ですね!
まず、これから作成していく移動平均のインディケータープログラムを
ちょっと見てみてください。
ほんと、ざっと見てもらうだけでいいです。
//+------------------------------------------------------------------+
//| MA Kirin.mq4 |
//| Copyright Kirin 2010, Forex Trading Laboratory. |
//| http://ameblo.jp/ftlabo-kirin/ |
//+------------------------------------------------------------------+
#property copyright “Copyright Kirin 2010, MetaQuotes Software Corp.”
#property link “http://ameblo.jp/ftlabo-kirin/”
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_level1 0
// 指標バッファ
double Buf[];
// 外部パラメータ
extern int MAPeriod = 13;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//—- indicators
// 指標バッファの割り当て
SetIndexBuffer(0, Buf);
// 指標ラベルの設定
string label = “MA(“+MAPeriod+”)”;
IndicatorShortName(label);
SetIndexLabel(0, label);
//—-
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//—-
//—-
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//—-
int limit = Bars-IndicatorCounted();
for(int i=limit-1; i>=0; i–)
{
Buf[i] = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, i);
}
//—-
return(0);
}
//+------------------------------------------------------------------+
「うわっ!何これ!?私にはできっこない!」
なんて思っちゃいました?
大丈夫です。現に私にできているのですから^^
上記を見てもらっても分かるように、
プログラミングというのは文字の羅列によってできています。
その文字の羅列、組み合わせ方法を学べば、
プログラミングって案外簡単にできちゃうものなのですが、
そのとっつきの悪さが邪魔をして挑戦することすらやめてしまう方が多いのが現状。
何が一番分かりにくいかといいますと、私はこう思っています。
「文字が何を表しているのかが分からない」
このハードルをまず越えることが大切です。
皆さん、中学校の頃に数学で、「りんごを x と置く」ということを学びましたよね。
この考えがプログラミングに通じているのです。
この[ x ]って[ 変数x ]って表現したりしますよね。
そう、これがプログラミングにおける関数なんです。
伝わりが悪いと思うので、具体例を挙げます。
int i = 0;
とおき、変数を定義したとします。(ここではまだ、int や ; は気にしないでください)
すると、i は 0 なんです。
分かります?
int k = i + 5;
ってすると、kは5なんです。
これが、プログラミング上での変数の使い方です。
さらに、この変数にはどんな文字でもおくことができます。
int MAPeriod = 13;
ってすれば、MAPeriodを13として扱うことができる。
これがプログラム上でのほとんどの文字の意味です。
これ以外にも文字が使われているのですが、
それについてはおいおい説明していこうと思います。
この時点ではまだ、変数に数字を当てはめる利点が分からないと思います。
それについては次回、説明しようと思います。
がっつり質問してくださいね!
ここを乗り越えなければ、どんなプログラミングも分かりませんから!
最後までお読みくださり、ありがとうございます^^
これにて、第一回を終了します!
コメント
SECRET: 0
PASS:
口座じゃなくて講座?
SECRET: 0
PASS:
φ(.. ) ちょっと覗いてみようかな・・・プログラミングの世界
SECRET: 0
PASS:
>ななしさん
ぬはっ!
ご指摘ありがとうございます・・・
最後まで気づきませんでしたorz
SECRET: 0
PASS:
MQLやってみたかったので
楽しみにしています^^
SECRET: 0
PASS:
>あやと ゆうさん
最初のハードルさえ越えてしまえば、
以外にできちゃうようになると思います。
作れなくてもいじれるようになれば、
結構面白い世界が見れるかもしれませんよ!
コメントありがとうございます^^
SECRET: 0
PASS:
プログラムなど ど素人の私でも分かるようにゆっくりお願いします~(^-^)/
SECRET: 0
PASS:
覚えたいです・・・
SECRET: 0
PASS:
ついに始まりましたね~
毎回毎回
「バッファってなんだっけ?」てところから読み返す私のような覚えの悪い人間でもわかりやすくご説明お願いします(。-人-。)
SECRET: 0
PASS:
>kirarinさん
初めての人がプログラミングできればと思い、
書いていくつもりです!
バンバン質問してくださいね^^
お読みいただきまして、ありがとうございます!
SECRET: 0
PASS:
>ta-tolさん
最初のほうの内容は簡単すぎるくらいのものの予定です^^
そのあたりからしっかり理解して言っていただければ、
問題なくこなせると思いますので!
一緒に覚えましょう!
SECRET: 0
PASS:
>choriさん
バッファという言葉を理解されている時点で大丈夫だと思う私ですが・・・w
choriさんはどのくらいできるのでしょうか?
それに興味があります。
ご訪問ありがとうございます^^
SECRET: 0
PASS:
FXメタトレーダー入門を片手においておけば完璧でしょうか?(笑)
自分はperlをかじってるので、少しの理解はあるつもりですが、今回の文字式にまで言及してる書籍はないと思いますので、とても有益な講座ですね。
これからも楽しみにしてますので、ぜひ継続してください。
SECRET: 0
PASS:
>junkyさん
Perlを触ったことおありでしたら、
私より導入時のハードルは低いと思いますよ^^
案外すぐなのでは?
入門本があれば完璧ですねw
「豊嶋先生の本の何ページをご覧ください」
みたいな記述も行っていこうかなって
思っていますので^^
コメントありがとうございます!
SECRET: 0
PASS:
うーん 確かに難しいです。
でも 解るようになったら
本当に有益ですよね。
また いろいろ教えてくださいね。
SECRET: 0
PASS:
>ピーチママさん
お久しぶりです^^
ここで詰まると後が大変かもしれません。
しっかりついてきてくださいね♪
お読みいただき、ありがとうございます^^
SECRET: 0
PASS:
これは「関数」じゃなくて「変数」の説明ですね。
SECRET: 0
PASS:
>ジダンさん
アドバイスありがとうございます!
中学のころは何でも関数って読んでいた気がしたので用いてみたのですが、
混乱を招いちゃいますよね。
修正しました!
SECRET: 0
PASS:
M相箱から辿り着きました。
うれしい講座ですね^^
基礎知識の穴を埋めるために楽しみに貪欲にかぶり突かせてもらいます。
SECRET: 0
PASS:
>しんさん
ありがとうございます^^
一番最初のとっかかりのサポートができれば幸いです。