ブログトップ 記事一覧 ログイン 無料ブログ開設

とあるMetaTraderの備忘秘録 RSSフィード Twitter

当ブログは衰退しました。

2009-09-26

キー操作で売買するMetaKeyX(無期限版)

とある人からリクエストがあったので、だいぶ昔に作成した、キー操作で売買するMetaKeyXの無期限版を再アップしました。私にとっては過去の遺産なので、今更公開するのも恥ずかしいのですけど、、、使ってみたい人はご自由にどうぞ。


(注:そのままでは、ODLのような注文時にストップを入れられないブローカーでは動きません。要望があれば対応版も用意しますが…


このツールは、キー操作で売買を可能にするもので、例えば、「B」キーを押したら買い、「S」なら売り、「C」を押したら全クローズ..が出来ます。警告が煩わしい人は「W」を押して警告解除します。

「T」「L」キーを押して、利食い/損切りラインを表示させてドラッグすればその位置に指値されます。

f:id:fai_fx:20090925153230p:image

f:id:fai_fx:20090925153244p:image

MetaClick1ほどの高度な機能は何もありませんが、scriptのソースを同梱しているので、自分でカスタマイズすることも可能です。

script として作成してありますが、EAとしても動いてしまうかもです。

主な使い方は以下の通りです。





インストール

libraries フォルダにEventHook.dll

scripts フォルダに MetaKeyX_v1.2.mq4

を置いて、MetaTrader を再起動してください。

EventHookSample.mq4 は、キーイベント取得のサンプルなので、プログラマではない一般の人には不要です。

MetaKeyX_v1.2b.mq4 は、Chin Breakout Alert V.1.2s(m MTF).mq4のラインで利食い/損切りします。

indicators フォルダ内のTickSmoother_v1.1c.mq4は、ティックチャートを見たい人向けです。

sounds.zip はChin Breakout Alert V.1.2s(m MTF).mq4 用です。



起動の仕方

チャートを開いた状態で、ナビゲータの Scripts の中の MetakeyX をダブルクリックしてください。

全般パラメータで、 Allow live trading , Allow DLL imports にチェックを入れてください。

起動に成功すると、画面右下に黄色のキーボードアイコンが表示されます。



終了の仕方

q を押せば、静かに終了します。

チャートを右クリックしてスクリプトの削除を選択しても終了します。

スクリプトは同時に1つしか実行できないので、別のスクリプトを実行しても終了してしまいます。

MetaTrader を再起動しても終了します。



ダブルクリック

u キーを1度だけ押してから、画面をダブルクリックすると、十字カーソルに変わります。

Ctrl+F や、マウスの中ボタン、マウスの左右両押し等でも十字カーソルに変わりますが、面倒なので、ダブルクリックに割り当てています。

この動作が嫌いな人は、 再び、u キーを押して解除することができます。この機能を一切使わない人は、

if(g_DBLCLCK_Cross) SendKey(70);

という一行を見つけ出して削除してください。



情報表示系

i キーでアカウントや通貨ペアの情報が見られます。

hキーで売買履歴をチャートに表示できます。再度 h キーを押せば消えます。

j? J または?(Shift+?)キーでキー割り当て一覧を確認できます。




トレード系

, / ロットを増やす

. \ ロットを減らす

b 買い

s 売り

c 全ポジ閉じる

f 利益ポジのみ閉じる

r 利益ポジのみ閉じるを繰り返す(RPCモード)

[ RPCモードの利食いpips を増やす

] RPCモードの利食いpips を減らす

d 指値注文を全削除


売買のたびに警告ダイアログが出るのがいや〜んな時は、w キーを押して警告解除してください。

猫がキーボードに飛び乗る可能性がある場合は、再度 w を押して警告モードに移行してください。



StopLoss/TakeProfit

l ストップロスラインの表示/非表示

k 表示チャート上の通貨ペアのストップロス削除

t 利食いラインの表示/非表示

y 表示チャート上の通貨ペアの利食い設定削除

として機能します。

ストップロスラインは、Bidライン上に表示されます。StopLoss の文字を適切な価格帯にドラッグし、3秒待つとそこにストップが入ります。ラインがグレーになるエリアはストップを置けません。

ストップは、常にタイトな方向にしか動かせません。

10pips下のストップを20pips下に移したい場合は、一旦 k で全削除してから設定してください。

利食いラインには、そのような制限は無いので自由に移動できます。



その他

q スクリプトの終了

a 新規トレードの禁止/キーボードアイコンがグレーになり、B,S,Cキーが無効になります。

w トレード毎に確認ダイアログを出すモード切替

u ダブルクリック時のカーソル切替えモードの切替え/ライン移動時に面倒だったりね..

e Ctrl+E をエミュレート(意味無し)

z グローバル環境変数にEAの動作再開時刻を書き込む

x zで設定したデータを削除

z,x はEA側にデータ読込み機能が無ければ機能しません。

もうすぐ指標発表があるから今から2時間だけEA を止めたいなって時に z を4回押すとEAはクローズオンリーモードで動作し、2時間後以降に新規ポジを取るようになります。(これらは私のEAでしか動きません..^^;

nuwitternuwitter 2009/09/26 03:37 こんばんは。
これめちゃくちゃ便利そうですね!
>そのままでは、ODLのような注文時にストップを入れられないブローカーでは動きません。要望があれば対応版も用意しますが…
是非対応版も作っていただきたいです。

BRUTUSBRUTUS 2009/09/26 23:16 おお、ついにこちらでも公開ですか
無期限版ありがとうございます

ECN対応
私もお願いいたします

fai_fxfai_fx 2009/09/27 00:09 nuwitterさん、こんばんは。
便利かどうかは使ってみて判断してください。
変に機能がてんこ盛りもどうかなぁ…とか思ってて微妙です..。

BRUTUSさん、こんばんは。
以前のものはDLL自体に期限を付けておりましたので、それを無くしています。
ECN対応は、来週相場が明けてから考えます。

yatsanyatsan 2009/10/18 05:31 こんにちは。ありがたく利用させていただきます。
とても便利なのですが、起動中に時間足を変更すると
「終了しますか?」と聞かれて変更できません。
プログラムをwhileでloopさせているからでしょうか?
時間足が変更できるようにするためには、どうすればよいでしょうか?
よろしくお願いします。

fai_fxfai_fx 2009/10/18 22:43 script で実行する限り避けられない問題だと思います。
Expert Advisor として動かしてみてください..。

しょんしょん 2009/10/23 19:49 こんばんわ、はじめまして。
MetaKeyXをEAとして自分の使い易いようにしたいのですが、
起動した後に1回売買を行うとパラメーターを設定する画面が
出なくなってしまいます。
色々試してみたのですが僕には原因が分かりません。
お手数ですが、御教授願えないでしょうか。

fai_fxfai_fx 2009/10/23 20:46 初めまして、こんばんは。
Expert Advisor ボタンを押して、一度止めるとどうでしょうか?
ついでに、
init(){ start();}
という行を追加すると良いかもです..<EAとして動かす場合。

しょんしょん 2009/10/23 21:16 御返事ありがとう御座います。
Expert Advisor ボタンを試してみましたが
結果は変わりませんでした。
init(){ start();}
なんですが、コンパイルエラーが出てしまいます。
すみません、どこに配置すればいいのでしょうか?

nuwitternuwitter 2009/10/24 02:08 こんばんはー
しばらくデモ/ライブでmetakeyXを使っていますが、私もこれを
EAとして使ってみたいと思うようになりました。
metatraderを再起動させたときにscriptだといちいちアタッチし直すのが
面倒だというのが大きいかも?w
あとEAでよくある、TP/SLの隠蔽機能や擬似的なストップ注文の機能が
あったらなあと思うのですが、実装するのは難しいでしょうか?
アドバイスいただけたら幸いです。

nuwitternuwitter 2009/10/24 04:36 ちょっと身構えてましたがfaiさんが記事で書いてある通り、EAとしての動作自体は
問題ないですね。

>しょんさん
faiさんのリアルタイム時計の記事が参考になります。
start()内で最初に出てくるループを記事のように書き換えればOKですよ。
あとパラメータの編集はEAを一旦停止(削除ではない)させれば出来ます。

しょんしょん 2009/10/24 17:18 nuwitterさん。
はじめまして、こんにちは。

御返事ありがとうございます。
過去記事を読んで試してみようと思います。
一度、全記事を読んだ方がよさそうですね^^;
faiさん、nuwitterさん、ありがとうございました。

nuwitternuwitter 2009/10/25 01:39 >しょんさん
ごめんなさい、書き方が悪かったかもです。
上で言った記事とは10月10日の記事のことです。

>faiさん
ECNの件も含め、今はご自身で使われていない(と推察します)ツールにあれこれ
求めてしまったようで、申し訳ないです。
以後自粛します。

chinchin 2010/02/11 00:24 U are great!
素晴らしいやつができたね!

山椒魚山椒魚 2010/08/28 11:56 MetaKeyX を最近使い始めました。素晴らしいです。
昔の記事で申し訳ないのですが、いくつか質問があります。

1. プログラムではstart内で100ms毎にループしてるのですが、実際の売買orderは次のTickが来たときに行われるようです。これはEAの仕様でしょうか?そうであれば手動売買のように即時発注は無理ということでしょうか?

2. EA化してtesterのvisual modeで動かしたのですが画面が動きません。start()を出ていないからでしょうか?売買は最初の時間で実行されています。testerで動かすのは無理でしょうか?

よろしくお願いいたします。

山椒魚山椒魚 2010/08/29 18:30 お世話になっています。

上の質問 2. についてですが、いろいろ調べているとtesterでMetaKeyXを使うのは無理だろうと判ってきました。
ネットで見つけたLFH_SimulatorというEA,scriptを使いtesterで売買出来るようになりました。
ただ、scriptの操作性が悪いのでMetaKeyXでLFH_Simulatorへorder発行出来るように改造し利用しています。

1. についてはdemoでもう少し調べてみます。

fai >山椒魚fai >山椒魚 2010/08/30 00:11 1は、注文を出す時に最新のAsk,Bid値が必要なので、注文時にRefreshRates() しているのが原因かもしれません、MarketInfo で、Ask/Bidを取得すればTickを待つ必要が無くなるかもです。

2. は、無限ループ方式では無理ですね。
バックテスト時は定期的かつ頻繁にTickがくるので、ループ方式を止めれば対応できるかもしれません。。

山椒魚>fai山椒魚>fai 2010/09/01 02:57 コメントありがとうございます。

1. についてですが、その後使ってみたところ即時に発注出来ることあるようで必ずしも次のTickを待ってるわけでは無さそうです。
結局、発注が早いときも遅いときがあるだけのようです。(手動でもそうですよね。。。)

それにしてもこのソフト自分仕様に改造できて素晴らしいです。
ただ、Forex.comはスプレッドが大きいので活躍する場面が少ないのが残念です。

やすやす 2011/03/21 16:12 MetaKeyXをダウンロードしてみましたが、ZIPファイルが壊れているようで解凍できませんでした。
アップし直してみて頂けませんでしょうか。
よろしくお願いします。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/fai_fx/20090926/1253890822