2015年01月25日

【MT4】キーボード↑↓←→でタイムフレーム、通貨ペアを変えるインジケーター

コメントでアドバイスがありまして、

【MT4】キーボードで周期設定を変えるインジケーター
【MT4】キーボード↑↓で通貨ペアを変えるインジケーター

を足したインジケーターを作りました。


keyboard.jpg


TimePair_Change.mq4 (2015/01/25 ver1.0)
MT4 Build765で作成・動作確認しています


チャートを動かすときにキーボード←→が使えなくなりますが、そのときはマウスでやるしかないです。

これは便利です(自画自賛)。すぐに見たいチャートに切り替えられるのがいいです。マウス操作の手間がはぶけます。ただモニターが何枚もある方は必要ないかもしれませんね。私は2枚だけでやっているので必須のインジとなりました。一度試してみてください。
posted by ロンド at 10:47| Comment(32) | MT4 | 更新情報をチェックする
この記事へのコメント
ロンドさん
こんばんはーこれまた、便利なアプリですね!
いつもありがとうございます。
チャートプロファイル?組表示をキーボードで変えれたら便利だーなみたいな。
EURの組表示ならZ
GBPの組表示ならX で変えれるみたいなw


本題
以前作っていただいた、プログラムについてお聞きしたいのです
最近Indicateがすごく重くてレートが度々止まるんですね。
それで、プログラムをみていたのですが、(int OnCalculate{}の中のfor文を・・・)


int counted_bars = prev_calculated;
int limit = rates_total - counted_bars;
static int AlertCounts;

if(limit > 0) {
limit = rates_total - (BBandPeriod+1);
AlertCounts = 0;
}
else limit = 0;
  Comment(limit); ←挿入してみた
for(int i=limit; i>=0; i--){}


で Comment(limit); を出力して見たら 1049って出たんですね。
これは、Tick毎に1000回以上 プログラム動いているを表しているのかなーって思うのですが
どうなんでしょうー




Posted by Y君 at 2015年01月27日 23:36
そこで、考えてみたのですが
Limitの取得をこんな感じにしてみようと思うのですが どうでしょう。

○パターン1
はじめだけIndicateを全部処理する
if(IndicatorCounted() == 0 ) limit =WindowFirstVisibleBar();
あとは、Tick毎に Limit=3にして、直近3本だけ計算する。
if((IndicatorCounted()+1 < rates_total) && (IndicatorCounted() > 1) ) limit =3 ;
if(IndicatorCounted()+1 == rates_total ) limit =3 ;



○パターン2
はじめだけIndicateを全部処理する
if(IndicatorCounted() == 0 ) limit =WindowFirstVisibleBar();
あとは、ろうそく毎に Limit=3にして、直近3本だけ計算する。
if((IndicatorCounted()+1 < rates_total) && (IndicatorCounted() > 1) ) limit =3 ;
同じロウソク足なら処理をしない
if(IndicatorCounted()+1 == rates_total ) return(0) ;


ってやると、軽くなりそうな気がするのですが、何か見落としてないでしょうか。
Posted by Y君 at 2015年01月28日 00:41
>Y君さん

最初のコードで重いですか・・・?
MT4起動時にlimitが1049ぐらい、その後tickごとにlimit=0で1回しか動かしていません。

if(IndicatorCounted() == 0 ) limit =WindowFirstVisibleBar();
else limit = 3;

でどうでしょう。
Posted by ロンド at 2015年01月28日 19:21
ふふ、ありがとうございます。
さすがロンドさん、シンプルな文章・・・すばらしいっす。
Posted by Y君 at 2015年01月30日 09:25
ロンドさん

はじめまして、ロンドさんのホームページを週末に偶然知りました。

本インジケーターも含めて作成されたインジケーターをいくつかダウンロードさせていただきました。
本当によく考えられた素晴らしいインジケーターだと思います。
感謝して使わせていただきます。ありがとうございます。


Posted by bigapple at 2015年02月02日 20:47
>bigappleさん

インジケーターを使っていただき、ありがとうございます。
こういうのがあったら便利だろうなぁというのを作って公開してます。
今はアイディア切れですが、また何か思いついたら作りたいです。

これからもよろしくお願いします。
Posted by ロンド at 2015年02月02日 22:51
こんにちは
前も書いたかもしれないですがロンドさんは発想がユニークで面白いですね。
すごく触発されるので毎回ブログが楽しみです。

ご要望聞いていただけるということで早速提案をさせていただきます。
自分はキーにMAの期間を変える(とTimeFrameChange)インディケータが欲しいです。

その時々の相場によってMAのどの期間に沿って動くか変わってきますよね。
トレンドが激しく出ていれば10期間、通常だと20期間とか40期間
大きな波動だと200期間とか、その間をとった100期間とかでも、反発したりします。
これはどこかのサイトの受け売りですが1分足の1000期間は5分足の200本分に相当しますし、やっぱり反発しやすいです。

これらをチェックするにいちいちプロパティを開いてポチポチかえていると時間がかかってります。かといってGMMAだとローソク足が見難くなってしまう。
というわけでお願いしてみたしだいです。


直感的には、上下キーをタイムフレームを変えるキーに
左右キーをMAの期間を変えるキーがよさそうですね。
(器用じゃないのでいろんな通貨をみてトレードできないので通貨ペアを変えるキーはそれほどいらないんです^^;)


一度ご検討いただければ幸いです。


Posted by たい at 2015年02月13日 13:01
>たいさん

なるほど。おもしろそうですね。
上下左右キーの動作+[S]キーでSMA、[E]キーでEMAにもしてみたいです。
作ってみますので少しお時間をください。
Posted by ロンド at 2015年02月13日 15:29
>たいさん

質問なのですが、タイムフレームを変えるというのは、MTFでしょうか。

例えば、
①1分足のチャート→5分足のチャート→15足のチャート
とチャートの時間を変えるのか、

②1分足のチャート上で、
1分足でできた20MA→5分の20MA→15分の20MA
と変えるのか、

どちらだろうと作りながら思いました。
Posted by ロンド at 2015年02月13日 17:05
早速の返信ありがとうございます。

> [S]キーでSMA、[E]キーでEMA
これいいですね。MAの種類までは切り替えられないだろうなと思って書きませんでした。


説明が不足してすいません。
①ですね
上下キーはTimeFrame_Changeインディケータの動作で
左右キーがMAの期間です。

というかTimeFrame_Changeは便利すぎて自分の必須インディケータになっているので
これに更に機能を追加したいと思いました。

よろしくお願いいたしますm(_'_)m




Posted by たい at 2015年02月13日 19:39
>たいさん

できました。試してみてください。

https://fx-dollaryen.up.seesaa.net/image/MA_change.mq4

上下キー タイムフレーム変更
左右キー MAの期間
[S]:SMA [E]:EMA

MAの期間を確認するのにライン上にカーソルを持ってくるか、一時的にデータウィンドウを表示させるのもいいかと思います。

左右キーは元々チャートを動かすキーに設定されているので、押したときにチャートが少し動くのが気になりました。あと連続して早くキーをたたくと値が飛びますが、これは仕方がないです。ゆっくり変更するしかないですね。(^_^;)

思ってたのと違ってましたらまた言ってください。書き換えます。
Posted by ロンド at 2015年02月13日 22:15
ロンド 様
はじめまして。
通貨ペアに関するものをいくつかダウンロードさせていただきました。
便利な機能をありがとうございます。
使わせていただきますね。
Posted by hiro at 2015年02月14日 11:49
まさかこんなに早く対応してもらえるなんて思ってませんでした。
即行の対応ありがとうございます。

かなりいい感じなんですが、MAの期間がひとつずつ変化するのではなくて
いくつかの設定できてその期間で変化してほしいです。
自分のほしい期間は
10,20,40,100,200,1000 あたりです。ほしい期間は人それぞれ違うでしょうから
10個くらいセットできたらよさそうですね。
input int 5;
input int 0;
input int 10;
input int 20;
input int 40;
input int 60;
input int 100;
input int 200;
input int 1000;
input int 0;
みたいにして0の設定は飛ばすみたいな。。。


チャートが左右に移動しちゃうのは誤算でした。過去チャートだとちょっと困ったことになりそうですが、リアルタイムチャートでの仕様を想定してるので問題ないです。

わがまま言ってすいません(^^);
Posted by たい at 2015年02月14日 18:01
>hiroさん

はじめまして。コメントありがとうございます。

自分でMT4を使っててこんなインジがあったら便利だなぁというのを自作して公開してます。
またアイディアが思いついたら作っていきます。
使ってみての感想などお待ちしております。
これからもよろしくお願いします。
Posted by ロンド at 2015年02月14日 20:21
>たいさん

あ、そういうことだったのですね。
すぐに作り変えるので少しお時間をください。
Posted by ロンド at 2015年02月14日 20:35
>たいさん

インジはできたのですが確認したいので、すみませんがサーバーが動く月曜日まで待ってください。
Posted by ロンド at 2015年02月14日 21:37
Tickの更新がないと更新されないですよね
急いでいないので余裕のあるときでぜんぜん大丈夫です。

自分はfaiさんところの強制Tick更新スクリプトを使って試しました。
http://d.hatena.ne.jp/fai_fx/20100319/1268927814
ただ、古いMT4だとできなかったですが、
新しいMT4だとOnTimer()で動かすのが正解かもしれないですね。


Posted by たい at 2015年02月15日 11:09
追記
OnChartEvent()で対応されてたんですね。
ソース見ずに書き込んでしまいました。
OnTimer()よりこっちのほうが正解ですね。失礼しました。


Posted by たい at 2015年02月15日 11:34
>たいさん

新しいMT4になってから比較的簡単にいろいろできるようになりました。
MT4便利です。MT4なくなると困ります。(^_^;)
Posted by ロンド at 2015年02月15日 12:54
ロンド 様

早速使用させていただいてます。
一括変換はたいへん驚きました(笑)
私的にはいくつかのチャートにTimePair_Changeを入れるのが便利です。
その場合、1枚は表示される通貨ペアの順がほかのと違っているので、
Lancherのようにどの通貨かわかるといいなと思いました。
とても便利なものをありがとうございます。
Posted by hiro at 2015年02月16日 17:46
>たいさん

出来ましたのでアップしておきます。

https://fx-dollaryen.up.seesaa.net/image/MA_change1.mq4

試してみてください。また違ってたら言ってください。
Posted by ロンド at 2015年02月16日 18:24
>hiroさん

使っていただき、ありがとうございます。
自分も頻繁に使うインジです。キーボード連打してます(笑)
ドルストレート、クロス円といった感じで分けてます。
次表示する通貨ペアが分かると確かにいいですね。
目立たないところがいいでしょうか。左上のコメント部分がいいかなぁ。
またいろいろ考えてみます。アドバイスありがとうございます。
Posted by ロンド at 2015年02月16日 18:34
たびたびのご対応ありがとうございました。
バッチリ思ったとおりの動きしてくれました。
MAの変更での再描画のたびに重たいので後は、自分なりにいじってみようと思います。
ほんとMT4便利ですね。これでスプレッドさえ狭ければいうことないのですけどね。
このインディも必須アイテムになってくれそうです。
また何かあったら相談に乗ってください。ありがとうございました。
Posted by たい at 2015年02月16日 20:29
>たいさん

キーを押したときに1秒ぐらい止まりますよね。
もっといい方法があるかもしれません。
またよろしくお願いします。ありがとうございます。
Posted by ロンド at 2015年02月16日 22:10
ロンド様。素晴らしいインジケーター達、使用させていただきます。
作れるなんて尊敬します。
ありがとうございました。
Posted by 白金正成 at 2016年02月02日 16:36
>白金正成さん

インジケーターを使っていただき、ありがとうございます。
使ってくださる方がいて、本当にうれしいかぎりです。
活動を再開するので、またよろしくお願いします。
Posted by ロンド at 2016年02月02日 22:52
ロンド様

はじめまして。いくつかインジをダウンロードさせていただきました。
どれも大変便利で重宝しております。本当にありがとうございます。

要望をお受けしているとのことなので一つ、
チャート上のローソク足にマウスオーバーしたときに右下のステータスバーに時間とOHLCが表示されますが、これをチャート上の右側に拡大して表示するようなことは可能でしょうか?
ご検討のほどよろしくお願い致します。
Posted by じゅんた at 2016年03月11日 13:25
>じゅんたさん

インジケーターを使っていただき、ありがとうございます。

カーソル下の価格取得は可能です。またインジを作ってみようと思います。今バタバタしてまして出来ませんが、また時間をください。
Posted by ロンド at 2016年03月16日 21:52
返信ありがとうございます。
お時間のある時でかまいませんので、宜しくお願い致します。
Posted by じゅんた at 2016年03月18日 22:25
ロンドさん

いつもブログを見ています
私のチャートにロンドさんの作成されたインジが何個か入っていてとても操作しやすくなっています♪

最近、ドル、円、ユーロ、ポンド、オージー、スイス、カナダ、ニュージーの8つの通貨からできる合計28通貨ペアを監視しているんですが通貨ペアを簡単に変える方法はないかなと思ってロンドさんのインジを入れてみました
これはとても便利だと思ったのですが、20通貨ペアまでしか表示できなくてちょっとへこみました^^;

そこで提案なのですがこのインジを28通貨ペアに対応させる事はできませんでしょうか?

とても便利なだけにあと8個あったらいいなと思いメールしました・・・

それから上下のカーソールキーで通貨ペアを変更する時に何故かその通貨ペアの5分→H1→H4→D→W→M→次の通貨ペア~(5分~月足の繰り返し)という順番で表示されます
時間足変更は右左のカーソールキーで変更できるので、例えばドル円のH1チャートを開いていたら上下キーで変更した時は時間軸はそのままで単純に通貨ペアだけ変わるというようになればいいなと感じました^^
因みにパラメーターの時間軸表示をH1のみにしても何故か上記のような状態が繰り返されます

私が使っているMT4はビルド1090です

何か問題があるのでしょうか?

お時間のある時で構いませんのでご返答いただけると嬉しいです
だいぶ寒くなってきましたので体調管理に気を付けてくださいね

それでは
Posted by ちー at 2017年11月08日 12:01
こちらのTimePair_Change.mq4 を便利に使わせてもらってます。
いままでMT4で使っていたのでよかったのですが、最近MT5を使うようにもなって
MT5側にはこちらのようなキーボードで時間足、通貨を変えるようなものがないのであらためて良いツールなのだなーと関心してます。

感謝の気持ちと、MT5にも似たような機能の作成の希望も込めて書かせてもらいました。
ありがたく使わせてもらってます^^
Posted by あん at 2018年10月27日 21:19
ロンドさんいつもブログ拝見させていただいています。
さて、本インディケーターですが
私の環境では、タイムフレームは切り替わりますが
通貨ペアが切り替わりません。
原因を調べる方法があれば教えてください。

よろしくお願いします。
Posted by まつ at 2022年02月13日 10:20
コメントを書く
コチラをクリックしてください
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。