システムトレード研究所 〜FXで完全自動売買〜

このサイトでは、FXで完全自動売買を行うために必要な情報を書いていこうと思っています。システムを自分で作りたい方、システムトレードをやってみたい方は御覧になっていって下さい。
<< 二次元配列について | main | Blud600番台のフォルダ >>
digitsの差の適応
 こんばんは、システムトレード研究所の小松です。

 今回の記事は、「digitsの差の適応」です。
 
 digitsとは、通貨ペアの小数点以下の桁数のことです。例えば、ドル円で102.75というレートなら、小数点以下の75が2桁ですので、digitsは2になります。ユーロドルで1.3661というレートなら、小数点以下の3661が4桁ですので、digitsは4になります。

 このdigitsですが、証券会社によってドル円などのdigitsが2のところ、3のところがあり、ユーロドルなどのdigitsが4のところ、5のところがあります。

 少し話が変わりますが、通常1pipsというのは、ドル円の場合は0.01、ユーロドルの場合は0.001で、ドル円の0.001、ユーロドルの0.0001は0.1pipsとされますが、MQ4内ではレートの一番下の桁数が1pipsとされます。

 digitsが3のところで、ドル円の0.01は1pipsではなく、10pipsの扱いになります。

 パラメーターなどのPipsを設定する時に10倍の数値を入れれば特に問題ないのですが、証券会社ごとに数値を変えるのは面倒ですので、両対応するための処理が今回の内容になります。


extern double Stoploss = 50;
extern int Main_Stoploss = NULL;

int start()
{

if( Digits % 2 == 1 ) Main_Stoploss = Stoploss * 10;
else Main_Stoploss = Stoploss;



 上記はストップロスのパラメーターをdigitsによって10倍にする内容になります。

 まず、Digitsですが、これはチャートの桁数を取得してくれるものになります。例えば、桁数が5の場合はDigitsを使うと5が入ります。

 次に%ですが、これは割り算の余りを算出するものになります。上記の内容の場合、5 / 2 = 2 余り 1 という答えになりますので、1になります。

 ドル円などがdigitsが3、ユーロドルなどがdigitsが5のところは、2で割り切れませんので、余りが1になります。この場合、最低桁数が1pipsでは通常の0.1pipsが1pips扱いになりますので、50pipsを入れても実質5pipsになります。ですので、×10をして500pipsにして実質50pipsにします。

 ドル円などがdigitsが2、ユーロドルなどがdigitsが4のところは、2で割り切れて、最低桁数が1pipsでも問題がありませんので、そのままMain_Stoploss にStoplossを代入します。

 これで後は、ストップロスを設定する時に

取得レート - ( Main_Stoploss * Point )

とすれば、買いのストップロスを証券会社のDigitsの差に関係なく、同じレートで設定出来ます。(売りの場合は+にしてください)




システムトレード研究所〜FXで完全自動売買〜INDEXへ
MT4用オリジナルEAの制作・作成『オーダーシステム』 


--------------注意----------------


内容には注意を払っていますが、保障は出来ません。
実際に運用する場合は、自己責任でお願いします。

JUGEMテーマ:ビジネス

| 小松 | システムトレード実践編 | 15:43 | comments(0) | - |









      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< April 2017 >>



このページの先頭へ