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

このサイトでは、FXで完全自動売買を行うために必要な情報を書いていこうと思っています。システムを自分で作りたい方、システムトレードをやってみたい方は御覧になっていって下さい。
MetaTrader 4のバージョンアップによる記事の修正
 こんばんは、システムトレード研究所の小松です。

 MetaTrader 4のバージョンアップにより仕様が変わってきた部分がありますので、 記事を新しい仕様で書き直しております。

 現在「MetaTrader 4 プログラム入門編」の下記の記事を修正致しました。

MetaTrader 4 プログラム入門 part1 使い方
MetaTrader 4 プログラム入門 part2 変数
MetaTrader 4 プログラム入門 part3 If文
MetaTrader 4 プログラム入門 part4 If文 複数の条件分岐
MetaTrader 4 プログラム入門 part5 for文
MetaTrader 4 プログラム入門 part6 システムの導入方法


 残りの記事も時間が出来れば修正しますのでお待ち下さい。




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


 
JUGEMテーマ:ビジネス


| 小松 | システムトレード | 16:09 | comments(3) | - |
記事の修正
 こんばんは、システムトレード研究所の小松です。

 MetaTrader 4のバージョンアップにより以前と比べて仕様が変わってきた部分があります。

 旧仕様の記事でも一部を除き基本的にはシステムの制作に問題はありませんが、ややこしいと思いますので記事を書き直していこうと思います。

 MetaTrader 4の導入
 MetaTrader 4 プログラム入門 part1 使い方

 この二つの記事は現在修正完了しています。

 これから時間が出来たら少しずつ修正して行こうと思います。



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

JUGEMテーマ:ビジネス


| 小松 | システムトレード | 16:52 | comments(2) | - |
特定の時間の別の時間足のバーの取得
 こんばんは、システムトレード研究所の小松です。

 今回の記事は、「特定の時間の別の時間足のバーの取得」です。

 例えば、1時間足のチャートで10本前のバーの21日移動平均線と同じ時間の30分足のチャートの21日移動平均線を取得したいとします。

 30分足のチャート場合は10本前は10時間前ではなく5時間前なので、10時間前の20本前の21日移動平均線を取得しなければなりません。

 今回は簡単に計算で出せましたが色んな時間足を使う場合ややこしくなると思います。

 そこでもっと簡単に出来るようにiBarShift関数を使います。

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)

 引数は通貨ペア、時間足、調べる時間をいれます。最後のexactはtrueなら調べる時間にバーが存在しなければ一番近いバーの数値を、falseなら-1が入ります。バーが存在する場合はどちらも変わりありません。


 この関数は指定した通貨ペア、時間足のチャートで指定した時間のバーが何処にあるかを出してくれます。

 例えば、戻り値が20なら20個前のバーになります。


 では、実際の使い方です。

datetime a_time;
int b_bars_shift;
double b_ma_Rate;

a_time = iTime(NULL,60,10);

b_bars_shift = iBarShift(NULL,30,a_time,true);

b_ma_Rate = iMA(NULL,30,21,0,MODE_SMA,PRICE_CLOSE,b_bars_shift);


 上記の説明をしていきます。

 まず、a_timeに1時間足のチャートの10本前のバーの時間を入れます。

 次にb_bars_shiftにiBarShift関数を使用してa_timeの時の30分足のチャートのバーの数値を入れます。

 最後にb_ma_Rateに30分足のチャートのb_bars_shift分前のバーの21日移動平均線を入れます。


 これで今回の内容は終了です。

 今回のiBarShift関数を使用すればマルチタイム型のインジケーターの作成も出来ます。

 興味がある方は応用して制作して見てください。





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


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


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


JUGEMテーマ:ビジネス


| 小松 | MetaTrader4 プログラム中級編 | 16:03 | comments(0) | - |
マーケット情報の取得について
 こんばんは、システムトレード研究所の小松です。

 今回の記事は、「マーケット情報の取得について」です。

 まずマーケット情報についてですが、これは各通貨ペアのAsk、Bid、スプレッド、スワップなど、その通貨ペアに関する情報です。マーケット情報を引き出す関数はMarketInfo関数になります。

double MarketInfo( string symbol, int type)

 戻り値はdouble型で戻り、引数は通貨ペア(symbol)、何の情報か(type)になります。

 通貨ペアは証券会社によっては通貨ペア名の後にproなどが付いている場合がありますが、その場合はそれも入力してください。

 typeはかなりの数がありますので、詳しくはMQL4でMarketInfoと入力して、それにカーソルを合わせてキーボードのF1キーを押してください。MarketInfoのヘルプが出てきますので、そこからtypeのリンクを選択してください。

 下記に例を書かせて頂きます。

MarketInfo("EURUSD",MODE_BID);

 ユーロドルのBidを取得します、


MarketInfo("USDJPY",MODE_ASK);

 ドル円のAskを取得します。


MarketInfo("EURJPY",MODE_POINT);

 ユーロ円の1Pipsの通貨単位を取得します。レートの少数点が2桁なら0.1、小数点が3桁なら0.01などです。


MarketInfo("GBPUSD",MODE_DIGITS);
 ポンドドルの有効桁数を取得します。レートの少数点が4桁なら4、小数点が5桁なら5などです。



MarketInfo("EURGBP",MODE_SPREAD);
 ユーロポンドのスプレッドを取得します。単位はPipsになります。


 MarketInfo関数は主にAの通貨ペアのチャートでEAを動かしている時にBの通貨ペアの情報を取得したい時に取得します。Aの通貨ペアのチャートでEAを動かしていてもBの通貨ペアのポジションを取得可能ですので、この関数を使用すれば一つのEAで複数の通貨ペアの売買が行えます。

 また、同じチャートの情報でもMarketInfo関数でしか取得出来ない情報もありますので、色々と調べて見てください。




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


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


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


JUGEMテーマ:ビジネス


| 小松 | MetaTrader4 プログラム中級編 | 14:25 | comments(0) | - |
Blud600以降の警告
 こんばんは、システムトレード研究所の小松です。

 今回の記事は、「Blud600以降の警告」です。


 Buld600以降になってから、Buld600以前では問題がなかった内容でもMQL4でコンパイルすると警告が出るようになりました。
 
 警告なので大抵の場合特にそのままでも問題ないのですが、気になるという方のために一部の警告の消し方を書いておきます。



 return value of 'OrderSelect' should be checked

 「OrderSelect」の返り値がチェックされるべきです。(エキサイト翻訳)

 OrderSelectなどの一部の関数の戻り値をチェックしなければ警告が出るようになりました。


OrderSelect(cnt,SELECT_BY_POS);

 消し方ですが、上記のように宣言している場合、

if(OrderSelect(cnt,SELECT_BY_POS) == true)
{

}

のようにします。

 もしくはif文の意味がないですが、下記でも問題ないです。

if(OrderSelect(cnt,SELECT_BY_POS) == true);

 戻り値さえチェックしていれば問題ないようです。




 variable 'aaa' not used

 使用されない変数「aaa」(エキサイト翻訳)

 この変数が使われていませんという警告ですので、この使われていない変数を消せば警告も消えます。




 declaration of 'aaa' hides global declaration

 「aaa」の宣言はグローバル宣言を隠します。(エキサイト翻訳)

 グローバル変数と同じ変数を宣言していますという警告ですので、グローバル変数と違う名前の変数に変えれば警告が消えます。







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


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


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



JUGEMテーマ:ビジネス


| 小松 | MetaTrader4 プログラム入門編 | 16:20 | comments(2) | - |
 123456
78910111213
14151617181920
21222324252627
28293031   
<< August 2016 >>



このページの先頭へ