今回は、使う頻度が高い計算を関数化して、今後簡単に使えるようにしたいと思います。
何を作るかというと、iBarTypeという関数を作って、そのロウソク足が陽線か陰線か一発で分かるようにしたいと思います。
目次
どんな感じになるの?
普通にコードを書くと、以下のように終値と始値を引いて、終値の方が値が高かったら陽線、低かったら陰線という風に条件分岐をすることになります。
double M1_Open = iOpen (NULL,NULL,i); double M1_Close = iClose(NULL,NULL,i); double M1_Bar = M1_Close - M1_Open; if (M1_Bar > 0) { //陽線だったら... } else if(M1_Bar < 0) { //陰線だったら... }
これを以下のようにして、今後簡単に求められるようにします。
int bartype = iBarType(NULL,NULL,i); if (bartype == 1) { //陽線だったら... } else if(bartype == 2) { //陰線だったら... }
関数の作成
メタエディタを開いて、適当にインジケーターを新規作成します。(既存のインジケータファイルでも問題ありません。)
この関数では以下のように値を返してくれるように考えています。
- 十字線、または四値同時の場合は「0」を返す
- 陽線の場合は「1」を返す
- 陰線の場合は「2」を返す
まずは関数を定義します。
コードの一番下に以下のように追加します。

関数が出来ました。
以下のように関数を使うと変数内に「0」が格納されるものが出来ました。
int bartype = iBarType();
もちろんこれで完成ではありません。
次に始値と終値を使って陽線、陰線を確認してみます。
一番最初に使ったコードを追加しました。


「陽線だったら…」「陰線だったら…」の部分を以下のように変更します。
これで、陽線の場合はreturnで「1」を返し、陰線の場合は「2」を返します。
十字線の場合はif文で該当しないので、「0」のままになります。
皆さん気付きましたか?
このコードだと常にシフト0地点(現在足)のロウソク足しか確認できません。
なぜなら、iOpen、iCloseどちらも以下のようにしてあるからです。
(NULL,NULL,0)
なので、以下の部分を引数に変更します。

関数の完成
これで完成です。
以下のように関数を呼び出せば、そのロウソク足が陽線なのか陰線なのかがわかります。
int bartype = iBarType("USDJPY",PERIOD_M5,5);
同じように関数を作ってしまえば、ロウソク足のPoint値を確認するオリジナル関数も作れますよね?
是非チャレンジしてみましょう。
コメント
コメント一覧 (18件)
https://pinupaz.top/# pin up azerbaycan
modafinil 2025: modafinil 2025 – verified Modafinil vendors
legal Modafinil purchase: modafinil legality – modafinil legality
safe modafinil purchase: safe modafinil purchase – legal Modafinil purchase
no doctor visit required: cheap Viagra online – no doctor visit required
buy modafinil online: verified Modafinil vendors – safe modafinil purchase
online Cialis pharmacy: order Cialis online no prescription – reliable online pharmacy Cialis
discreet shipping ED pills: buy generic Cialis online – order Cialis online no prescription
buy modafinil online: doctor-reviewed advice – buy modafinil online
best price for Viagra: same-day Viagra shipping – trusted Viagra suppliers
generic tadalafil: affordable ED medication – reliable online pharmacy Cialis
legit Viagra online: legit Viagra online – Viagra without prescription
cheap Viagra online: best price for Viagra – secure checkout Viagra
generic prednisone cost: prednisone 80 mg daily – PredniHealth
can i get cheap clomid no prescription: get cheap clomid without dr prescription – how to get cheap clomid price
Amo Health Care: Amo Health Care – Amo Health Care
Amo Health Care: Amo Health Care – order amoxicillin uk
Amo Health Care: Amo Health Care – amoxicillin 500 mg tablet