2014年02月13日

【MT4】キーボードで周期設定を変えるインジケーター

1年ぐらい前に・・・

キーボードでMT4のタイムフレームを変えるソフト

を作ったのですが、今回のMT4アップデートにより過去のものとなってしまいそうです。インジケーターでできるようになりました。


TimeFrame_Change1.mq4  (ver1.1 2016年11月21日更新)


キーボードの[↑][↓]で周期設定を変えることができます。マウス操作が一つ減ってちょっと便利になります。

パラメーター設定で普段表示しない時間足をスキップすることもできます。

timeframefalse.jpg

月足とか1分足を見ないって人いるかと思います。そのときはfalseに設定してください。



アップデートされてからいろいろ作りましたが、もうネタ切れです。もうストップします。またアイディアが出てきたときに作ります。(;^ω^)

使ってみての感想などお待ちしております。なんでもいいです。




追記:2016年11月21日

コメントを頂き、バージョンアップさせました。ver1.1
インジケーターのパラメーター設定の最後に「タイムフレーム同期設定」があり、これをtrueにすると、このインジケーターをセットしているチャートを同じ時間軸に変更します。

(例)
チャートA このインジセット(タイムフレーム同期設定:true)
チャートB このインジセット(タイムフレーム同期設定:false)

・チャートAをキーボード↑↓を押すと、チャートAとチャートBのタイムフレームが変わります。
・チャートBをキーボード↑↓を押すと、チャートBだけタイムフレームが変わります。
posted by ロンド at 18:11| Comment(15) | MT4 | 更新情報をチェックする

2014年02月12日

【MT4】クロス円ランチャー

誰も必要ないかもしませんが自分用に作ってみました。クロス円のみですが、ワンクリックでチャートを切り替えてくれるものです。

cross.jpg

最初からクロス円のチャートを並べておけばいいのでしょうけども・・・。


zipファイルです。右クリックでダウンロードしてください。
CrossYen_launcher.zip
(必ず MT4 Build600 以降でお願いします)


使い方
①解凍した中のCrossYenフォルダーをIndicatorsフォルダー内に入れてください。

indifolder.jpg

CrossYen_launcher.mq4 と CrossYen_launcher.mqh を直接Indicatorsフォルダー内に入れても構いません。

②あとはインジケーターをチャートに貼り付けるだけです。

邪魔なときは最小化することもできます。


今回はサンプルコードのおかげで比較的早く作れました。今度はもっとオリジナルなものを作りたいと思います。
posted by ロンド at 20:27| Comment(0) | MT4 | 更新情報をチェックする

2014年02月10日

【MT4】自動でチャートが切り替わるインジケーター

以前のMT4でもAPIを使えばできないこともなさそうですが、今回のアップデートで比較的簡単に作ることができました。

autochart.jpg

自動でチャートをトップ表示してくれます。それだけです。観賞用?にどうでしょうか。


Auto_Chart_Change.mq4
(必ず MT4 Build600 以降でお願いします)

デフォルトでは5秒ごとに表示されます。それ以下もできますが、インジを止めるのが大変になるかと思います。自己責任でお願いします。


しかし、作っておきながらなんですが、よく分からないことがあります。
OnTimer()部分です。


void OnTimer(){

long nextChart = ChartNext(currChart); //次のチャートID

//最後まで来てたら最初に戻る
if(nextChart < 0) nextChart = ChartFirst();

ChartBringToTop(nextChart); //トップ表示させる

currChart = nextChart; //表示されたチャートID

ChartSymbol(currChart); // !?

}



最後の ChartSymbol(currChart); は全く意味がなく必要ありません。しかしこうしないと不安定な動きをします。どうしてなのでしょう。土曜日からずっと考えているのですが、理由が分かりません。なにかタイミングなのか・・・。誰か分かりましたら、ぜひ教えてください。
posted by ロンド at 19:31| Comment(1) | MT4 | 更新情報をチェックする

2014年02月08日

【MT4】チャートを同期させるインジケーター

連日MT4のアップデートが続いているそうで、早く安定したものにしてほしいですね。


それで今までのMT4ではできなかったのですが(MT5はできた)、Build600からできるようになったことがあります。使える関数が増えました。その一つをインジにしました。


synclo.jpg

チャートの同期です。

例えば過去のドル円のチャートを見たときにユーロドルはどうなっているのだろう、またドル円の15分足を見ているときに他の時間足ではどうなっているんだろう、そういうときありませんか。チャートを動かせばいいんでしょうけど、面倒でした。


インジケーターは2つあります。(右クリックでダウンロードしてください)
SynchroChart_main.mq4
SynchroChart_sub.mq4
(必ず MT4 Build600 以降でお願いします)
(記事下に最新版があります。)


使い方
①メインとなるチャート(手動で動かすチャート)にSynchroChart_mainをセットします。
②サブとなるチャート(自動で動くチャート)にSynchroChart_subをセットします。

そしてサブの方は「オートスクロール」と「チャートシフト」をオフにしてください。
(2014.02.09 コード修正しました。 ver1.1)

以上です。


主に検証で使うことになりそうです。ストラテジーテスターでも使えます。

そしてサーバーが止まっている土日でも使えます。今までのMT4ではできませんでした。大きくアップデートされてやれることが増えたのはうれしいです。あとは安定したものを早くリリースしてほしいですね。




(追記 2014/12/22)
コメントにアドバイスをいただき、右端を基準とした同期にも対応しました。

SynchroChart_main2.mq4
SynchroChart_sub2.mq4
(20014/12/22 ver2.0)

SynchroChart_main2インジのパラメーター設定で変更可能です。
posted by ロンド at 12:56| Comment(62) | MT4 | 更新情報をチェックする

2014年02月06日

【MT4】ウィルスバスターをお使いの方

メタトレーダー4がBuild 600にバージョンアップされました。それはいいのですが、ウィルス対策ソフトでウィルスバスターを使っている人は、metaeditor.exeが「Mal_Xed-3」マルウェアとして誤検知し、別の場所に隔離されてしまいます。


q.jpg

というわけで、一番簡単な対処方法を書いてみます。


まず起動しているウィルスバスターを終了します。(なぜ終了させないといけないのか理由があるのですが、省略します。)

finish.jpg

その状態でMT4を起動して自動アップデートするか、再インストールをします。ウィルスバスターを起動した状態で自動アップデートしてしまった場合は、再インストールしないといけないかもしれません。


そしてウィルスバスターを再起動させますが・・・

4.jpg
やはり自動的に誤検知しちゃいます。


元に戻すために

sec.jpg

[セキュリティレポート]→[詳細の表示]とクリックして「ログ(詳細)」を表示させます。


log.jpg

そして該当する項目をクリックすると、詳細の表示がされますので、[復元]をクリックすると元の場所にファイルが戻ります。これで大丈夫です。


もしくは、先にインストール先のフォルダーを例外設定にする方法もあるのかもしれません。

hogo.jpg


この誤検知はウィルスバスターだけなのでしょうか。早く修正してほしいですね。
posted by ロンド at 20:31| Comment(3) | MT4 | 更新情報をチェックする

2014年01月19日

【MT4】 クリップボードからデータを取得する

クリップボードを使ってデータのやり取りをしたいのですが、データをクリップボードに書き込むコードはMQL4のフォーラムで見つけることができました。

using SendFTP() How to copy to clipboard?
http://forum.mql4.com/30795#291624


その逆(クリップボードからテキストデータを受け取る)もしたいので、上のコードを参考にして書いてみました。


#import "kernel32.dll"
int GlobalLock(int hMem);
int GlobalUnlock(int hMem);
int lstrcpy(string Text, int ptrhMem);
//int lstrcpyA(int ptrhMem, string Text);
#import

#import "user32.dll"
int OpenClipboard(int hOwnerWindow);
int CloseClipboard();
bool IsClipboardFormatAvailable(int Format);
int GetClipboardData(int Format);
#import

#define CF_TEXT 1


/* クリップボードからデータを取得する関数 */
string GetClipboardText()
{
string strBuf="";

if (IsClipboardFormatAvailable(CF_TEXT)) {

if (OpenClipboard(0) != 0) {

int hMem = GetClipboardData(CF_TEXT);
int pMem = GlobalLock(hMem);

lstrcpy(strBuf, pMem);
GlobalUnlock(hMem);
}
CloseClipboard();
}

return(strBuf);
}



ポイントは
int lstrcpy(string Text, int ptrhMem);
int lstrcpyA(int ptrhMem, string Text);
と2つに分けたことです。

同じものなんですけども、こうするしか思いつきませんでした。プログラムできる方、もっとうまいコードの書き方を教えてください。


さて、これらを使って新しいインジケーターを作ってみようと思います。近日中に公開します。
posted by ロンド at 21:08| Comment(0) | MT4 | 更新情報をチェックする

2013年12月26日

【MT4】エントリーとクローズの位置がわかるインジ

トレードしたところが分かると便利ですよね。そんなインジです。

entryclose.jpg

過去トレードしたところをEAのバックテストのような感じに矢印とラインで表示します。

EntryClose_arrow.mq4
(右クリックしてダウンロードしてください)


entryclose_para.jpg

Arrow_sizeが矢印の大きさ(1~5)、total_countsが表示する数になります。


インジを作ってなんですが、私自身は使いません。トレードはMT4業者ではやらず、他のFX業者を使ってます。MT4はチャートソフトとして使うだけになっちゃってます。
posted by ロンド at 19:44| Comment(2) | MT4 | 更新情報をチェックする

2013年10月21日

渡した配列に値を入れられないのはなぜ?

MQL4で気になったことがあったので、誰か教えてください。


int init(){

int a[3] = {1, 2, 3};
test(a);

Print("a[0] =", a[0]);

return(0);
}

void test(int temp[]){
temp[0] = 10; //ここでエラー
}


err.jpg

コンパイルエラーになります。値を変更することができません。

こうすると、

void test1(int temp[]){
Print("temp[0] = ", temp[0]);
}

結果 temp[0] = 1

値を見ることはできます。どうしてなんでしょう? 
よく分かりません。そういう仕様だと思うしかないのかな。



ちなみに参照渡しをすれば大丈夫です。

void test2(int& temp[]){
temp[0] = 10;
}

結果 a[0] =10






【追記】

MQL5 uses both methods, with one exception: arrays, structure type variables and class objects are always passed by reference.

http://www.mql5.com/en/docs/basis/function/parameterpass


MQL5では仕様でした。
posted by ロンド at 19:12| Comment(0) | MT4 | 更新情報をチェックする

2013年08月26日

MT4に2chの市況実況2を表示するインジケーター

本当はニュースを表示するインジケーターを作るつもりだったのですが・・・。

2chindi.jpg


2ch_Livemarket2.mq4  (最新バージョンをこちらの記事で公開しています。)
【使うにあたっては、自己責任でお願いします。】

(2015/03/01 公開を終了いたしました。詳しくはこちら


MT4がにぎやかになります。
文字数に限界があるので、全てのレスを表示しません。簡易版だと思ってください。


インジケーターを表示させるときに、「DLLの使用を許可する」にチェックを入れてください。

dll.jpg


パラメーターの「KeyWord」によってスレッドを自動取得します。

keyword.jpg

↑では「新ドル円」となってますが、「ドル円専用」「EUR/USD」「ポンド」とか変えてみてください。そのキーワードに合ったタイトルのスレッドになると思います。

2chthread.jpg

1000レスまで来たら自動で次のスレッドを表示します。なのでそのままにしてれば特に問題はありません。もちろんスレッドがなかったら表示されません。

グレーが一度表示されたレス、白が新しいレスになります。

更新は1分間隔です。それ以上の間隔での更新はお薦めしません。
MT4が止まる土日は更新も止まります。トレード日のみとなります。


自分がトレードしているときは外して、していないときに表示する方がいいのかなとも。よく分かりませんが、一度試してみてください。いろんな人がいて楽しいですよ。
posted by ロンド at 18:48| Comment(4) | MT4 | 更新情報をチェックする

2013年08月25日

関数の速度測定

ある文字列から特定の文字列が何個あるかを調べる関数を作りました。
(例:「ABCDEFGAB」から"AB"が何個あるか。→2つ)

str = 元の文字列;  str2 = 特定の文字列;  戻り値 = 個数;
sfc1.jpg


もう一つ
sfc2.jpg


他にもあるでしょうね。
どちらの処理が速いのか分かりませんでしたので、調べてみることにしました。

普通はGetTickCount()で比べればいいんだと思います。
gtc.jpg

こんな感じです。for()である程度繰り返さないと差がでません。

だけどfor()で何回繰り返せばいいのか、そして繰り返すと困る関数もあるんじゃないかなと。

そこで1回で測定する方法がないか探してたらありました。
Win32 APIのQueryPerformanceCounterを使います。

qpc1.jpg


今回は必要ないですが、いつか使うことがあるかもしれません。(ないかもしれません。)



ところで結果ですが、

ms.jpg

StringFindCount2()の方が速いことが分かりました。やはり中で1つ関数が多いからでしょうか。
posted by ロンド at 09:16| Comment(0) | MT4 | 更新情報をチェックする

2013年08月06日

Strategy Testerで動かしながらの手動バックテスト

MT4の「Strategy Tester」でチャートを動かしながら検証している方が多いことを知り、自作してたソフト「MT4 Manual Tester」に機能を追加しました。


MT4 Manual Tester Ver. 1.3.0
(2013/08/06 最新版 [Windows限定] フリーソフト)

ダウンロードはこちらから


やり方
①MT4を起動する前に、MT4のexpertsフォルダー内に「EA MT4 Manual Tester.ex4」ファイルを置きます。

experts.jpg


②MT4を起動後、[オプション]→[エキスパートアドバイザー]→「DLLの使用を許可する」にチェックが入っているか確認してください。

option.jpg


③Strategy Testerを表示し、EAを「EA MT4 Manual Tester」にします。そしてビジュアルモードにしてください。

ST.jpg


④このソフトを起動し、モードを「Strategy Tester」にします。

mode.jpg


⑤Strategy Testerの[スタート]をクリックし、チャートを動かします。チャートのスピードも調節可能です。インジケーターの表示もできます。

⑥エントリーするところで一時停止し、このソフトの[買い]か[売り]ボタンをクリックします。
⑦一時停止を解除し、チャートを動かします。
⑧クローズするところで一時停止し、[決済]ボタンをクリックします。

あとは⑥⑦⑧を繰り返します。終了しましたら、レポートでグラフなど詳細な結果を見てください。


裏技?
Strategy Testerは一度動かすと、過去に戻ることができません。チャートを高速に動かして進みすぎたということが起こると思います。

そんなときは、MT4の「データ・ウィンドウ」を表示後、トレードするロウソク足にマウスカーソルを持ってきてキーボードのファンクションキー[F5]を押します。そして[買い][売り]/[決済]のいずれかを押していただくと、トレードしたことになります。このソフトの今までと同じやり方です。



使ってみた感想、要望、エラー、気づいた点など、何でもいいです。ぜひ教えてください。プログラム改良のモチベーションになります。^^ あとソフトを有料とかにするつもりは全くありませんので、自由に使ってください。
posted by ロンド at 18:20| Comment(10) | MT4 | 更新情報をチェックする

2013年06月28日

MT4自動起動ソフト

時間が来たらMT4を起動してほしいと思い作りました。スキャルをされていて常にMT4を起動している方には関係ないのかもしれません。

mt4start.jpg

15分、30分、60分から選べます。

【15分の場合】
・14分、29分、44分、59分にMT4起動
・15分、30分、45分、60分に音かメッセージボックスで知らせる

となってます。


MT4自動起動ソフト Ver.1.2.0 (最新版はこちらからダウンロード)
(フリーソフト Windows限定です)


まず初めにMT4を起動するための設定をします。【変更】ボタンを押してMT4のterminal.exeファイルを指定してください。

mt4s.jpg

Windows7 FxProの場合
C:\Program Files (x86)\FxPro - MetaTrader 4\terminal.exe
となります。

あとはチェックボックスのオンオフによっていろいろ切り替えることができます。


何か不具合などありましたら、教えてください。もっとこうした方がいいなど、何でも構いません。
posted by ロンド at 20:47| Comment(0) | MT4 | 更新情報をチェックする

2013年06月02日

IMMポジションをMT4に表示する

IMMポジションはとりあえず毎週見てます。直接エントリーには関係していませんが、投機筋はどうしているのかなと、参考程度のものとしてます。

今までHP上では、

OANDA COT Forex - CFTC's Commitments of Traders
http://fxtrade.oanda.com/analysis/commitments-of-traders

を見たり、Excelでは

外為どっとコム IMMポジション
http://www.gaitame.com/market/imm.html

からダウンロードして見てましたが、MT4上で表示してみようと思いインジケーターと表示するためのデータを作ってみました。


ドル円の週足です。
MT4_20130602_175155.jpeg


IMM_Position_on_MT4.zip (右クリックでダウンロード)


↑自作したインジケーターと、【円】【ユーロ】【ポンド】【豪ドル】のそれぞれのポジションをcsvファイルにしたものです。一番古いデータから2013年5月28日(現在)までの最新データになります。

元のデータはCFTCのサイトにあります。赤く囲った箇所です。
http://www.cftc.gov/MarketReports/CommitmentsofTraders/HistoricalCompressed/index.htm

CFTC.jpg



csvファイルはMT4のfilesフォルダーに入れてください。あとは普通のインジケーターと同じです。

設定では、それぞれの通貨に当てはまるファイル名にしてください。
ドル円だと IMM_JPY.csv
ユーロドルだと IMM_EUR.csv など

IMMsetting.jpg
ドル円の場合、mirrorをtrueにしてください。(ロングとショートを反転します。)

表示は週足だけでいいと思います。


これでかなり過去までさかのぼることができました。スイングとかされている方にはいいのかなと。あくまで参考程度で見ていきたいと思います。
posted by ロンド at 19:04| Comment(6) | MT4 | 更新情報をチェックする

2013年05月02日

MT4 Manual Tester ver1.2.4 バージョンアップ

掲示板にコメントをいただきました。ありがとうございます。

最新の足(0本目)の右側でF5を押下した場合の処理

Strategy TesterのVisual modeで動かしながら使っています.
いつも最新の足(0本目の足)でF5を押下しているのですが,たまにマウスが右側にずれてしまい,エントリー日時に「-1」と表示されることがあります.
BackSpaceで消してやり直してもいいのですが,最新の足より右側でF5を押下した場合は,データウィンドウから値が取れませんので,F5を押下しても無視するようにしてはいかがでしょうか?


指摘されるまで気づきませんでした。作った本人が気づかないことって多々あるもんですね。


そんなわけで最新版を作りました。機能的には変わってません。チャートの右側は反応しないようにしてます。

MT4 Manual Tester
最新 ver1.2.4 (最新版はこちらからダウンロード)

使ってみて何か問題がありましたら、ぜひ教えてください。使いやすいように改善していきます。
posted by ロンド at 20:13| Comment(3) | MT4 | 更新情報をチェックする

2013年03月25日

【MT4 Manual Tester】 Backspaceで「戻る」機能

ちょっとだけバージョンアップしました。MT4用手動バックテストソフトです。

MT4 Manual Tester Ver.1.2.3 
(2013/03/25 最新版 [Windows限定] フリーソフト)

【最新版はこちらからダウンロード】


見た目はほとんど変わってません。追加したのは、[Backspace]で入力したデータを取り消す機能です。サクサクと簡単にやり直すことができます。もっと初期の段階からできるようにしとけばよかったです。なぜ気づかなかったのだろう。。。

その他、コードを修正してちょっと安定したかなと思います。もし過去のバージョンをお使いの方は、新しいバージョンを使ってみてください。
posted by ロンド at 19:55| Comment(0) | MT4 | 更新情報をチェックする

2013年02月17日

MT4の画像を簡単に保存するソフト

今見ているMT4を画像にして残したいと思いつつも、ファイル名を付けたりしていくのは面倒だと思い、1回の操作で保存できるソフトを作りました。


MT4スクリーンショット (最新版があるサイト)[Windows限定]

mt4screenshot.jpg

操作方法などは、画像を見ていただくとなんとなく分かると思います。シンプルなものです。

このソフトとMT4を起動した状態で、だいたいキーボードの右上にある[Pause/Break]キーを押すとMT4の画像が保存されます。何に使うんだろうというキーですよね。もしキーボードになければ、ごめんなさい。

ファイル名は「MT4 日付+時刻」にしました。


最小化にするとタスクトレイにアイコン表示されます。

mt4screenshot2.jpg

そこでアイコンを左クリックしても画像保存できます。


今回プログラム能力が足りなくて断念したのが、チャートだけを保存することです。これはまた追加します。(追加しました。)

それと指定した時間ごとに自動的に画像を保存するような機能も追加したのですが、動作が安定しませんでした。原因が分からなかったので今回のバージョンでは見送ります。次回以降のバージョンとなると思います。

トレードの記録とかに使えるかなと思います。ぜひお試しください。感想をお待ちしています。



他にもMT4に役立つフリーソフト作ってます。こちらもよろしくお願いします。
https://sites.google.com/site/forexmanualtester/
posted by ロンド at 18:29| Comment(6) | MT4 | 更新情報をチェックする

2013年01月26日

キーボードでMT4のタイムフレームを変えるソフト

MetaTrader4のタイムフレーム(周期設定)を変えるショートカットがありません。なぜなんでしょう。あると便利なのに。

そんなわけでショートカットのソフトを作ってみました。(インジケーターでもできるのかなぁ・・・?)


MT4タイムフレームチェンジ (最新版はこちら)[Windows限定]

ファイルを実行するとタスクトレイにアイコンが表示されます。終了はアイコンを右クリックして「終了」を押してください。

timeframe.jpg

キーボードの[↑][↓]で 1分足 ⇔ 5分足 ⇔ 15分足・・・と変更できます。

元々キーボードの[↑][↓]はショートカットが割り当てられてますが、[←][→]とほぼ同じような機能なので別にいいかなと。一番わかりやすいキーということで[↑][↓]にしちゃいました。


プログラムの仕組みとしてはキー入力をキャッチして、ファーストナビゲーションに時間を入力して変えてます。なので1つお願いがあります。

【IMEなどの文字入力を半角英数字モードにしてください。】

ひらがな入力モードだとうまくいきません。

もし失敗した場合は、エンターを押して文字がない状態で始めてほしいと思います。

timeframe2.jpg

重いインジケーターを使っているときは動作がもっさりしますが、そうでなければサクサク動いてくれます。マウス操作の手間が一つ減るはずです。ぜひお試しください。
posted by ロンド at 09:20| Comment(0) | MT4 | 更新情報をチェックする

2013年01月18日

ブレイクアラートのインジケーター

ある価格を超えたら教えてほしいというときがあります。そんなときのインジケーターです。非常によく利用しているインジです。

alertline.gif

蛍光色のラインを超えたら知らせてくれます。

alert2.jpg

一度だけアラートが鳴っても気づかないときがあるので、60秒ごとになるようにしてます。アラートを止めるには価格の数値を0にしたら止まります。いろいろ試したのですが、これが自分には合っているかなぁと。

Alert_Line.mq4 (右クリックしてダウンロード)

他にトレンドラインをブレイクしたら鳴るインジケーターとかありますが、自分で作ったこれが使いやすいです。一度お試しください。



そして、指標発表の前に知らせてくれるソフトがほぼ完成しました。こんな感じになってます。

ana.jpg

来週の月曜日あたりに公開できると思います。ぜひこちらも使ってほしいと思います。
posted by ロンド at 19:30| Comment(6) | MT4 | 更新情報をチェックする

2012年10月23日

モラニス ストラテジービルダー

直伝チャンネルで、「モラニス ストラテジービルダー」というプログラムの知識がなくてもEAが作成できるソフトの存在を知りました。

詳しくはこちら(キャンペーンみたいなのもやってます)
http://www.jikiden.co.jp/Molanis/

山中さんの分かりやすい解説動画もあります。

価格は69.99ドルで5,600円ぐらいでしょうか。プログラムは絶対に無理とあきらめてた人にはいいかもしれませんね。
posted by ロンド at 15:29| Comment(0) | MT4 | 更新情報をチェックする

2012年08月28日

アルーン

The Best FX Indicator You’ve Never Seen
(かつて見たことがないベストインジケーター)

またまた、おおげさな。(笑)

私がAroonを「アローン」と読んでたことは内緒です。
(正解は「アルーン」)


使いませんがとりあず表示させてみました。ドル円の日足です。
aroon.gif

↑調べたところによると、「70以上で上昇/下落トレンド発生」と判断するそうです。
うまく機能しているような、してないような・・・。


なんか久しぶりに聴いたわー。
posted by ロンド at 13:45| Comment(0) | MT4 | 更新情報をチェックする