忍者ブログ
FXやその他投資についてのつれづれです
[8] [9] [10] [11] [12] [13] [14]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

こんばんは(*'-')

以前のエントリ
でアップしたツールですが、もともとバックテスト用であったこともあり
実際に運用してみると15分はなかなか集中して待つには長い時間ですね

そこで、少しは気を抜いて待てるようにEAを改良しました
これです→ダウンロード(mq4)
これをEA稼動のところにおいて、リアルタイムで稼動させると
15分ごとにアラートがあがるので、少しは待ちやすくなると思います
もちろん前のEAと同じくログファイルも出しております。
ログファイルの場所は、バックテストのときと違って
MT4インストールフォルダ内の
experts\files
フォルダに出力されます。
(例:C:\Program Files\121MetaTrader\experts\files\M15_USDJPY20081231.csv)
またEA稼動時に、過去100本分の4本値を先行で出力してます。
これは実際に動かす直前に過去の4本値がすぐに出せれば楽だと思ったからです。
(やる前に40本分の4本値が入っていると、とりあえずでサインがでそうですしね)
アラートはこんな感じ↓
2008_1231_101.JPG






チャートは15分足を前提にして作っているので、15分足のチャート上で使ってくださいね
EAを実際に稼動させる方法は
ここの記事に書いてあるので参考にしてください。
ハッ!Σ( ̄ロ ̄lll)このためにこの記事を書いていたのか!
さすが私。やってくれる・・・

PR
今回は話題を変えてEAの実行方法です。
私が今まで出してきたのは基本的にバックテストが前提でのEAでしたが
リアルタイムで動かすこともできますので、そのやり方になります。

※ライブ口座でこれをやると本当にEAが稼動して売買されてしまう可能性があるので注意です!

事前準備として、
1.MT4のオプション画面を表示する。
(ツール->オプション)
20081231_001.JPG






2.オプション画面が出たら「Expert Advisors」タブを開いて、画面のようにチェックを入れる
20081231_002.JPG




をやってください。

で、実際のEA実行方法というと
1.MT4上で新規にチャートを開く(今回はUSDJPYを選択します)
(ファイル->新規チャート)
20081231_003.JPG









2.チャートを開いたら、そのチャートに対して使いたいEAをドラッグ&ドロップします
(ナビゲータウィンドウ->Expert Advisorsの中から選択今回はMACD sampleを選んでいます)
20081231_004.JPG



3.ダイアログが出てくるので、適当に設定します。
(全般タブは画像のように、パラメータの入力タブは適当に)
20081231_005.JPG



4.ダイアログでOKを押して、チャートの右上にニコチャンマークが出てきたら正常に稼動しています
20081231_007.JPG








チャートの右上がニコチャンマークじゃない場合、事前準備での設定があっていないと思うので
チェックボックスを合わせてみてください

以上。今回はここまでで。
ご質問があれば、答えられる範囲でお答えしますので、お気楽にどうぞ(*'-')

前回の記事で、OrderSend関数を調査しました。
これによって売買注文を出すことが可能になったわけです

でも、これだけだと、指値で利確や損切り注文もつけないと
結局その注文やポジションを持ち続けちゃいますね

そんなときに役に立つのがこのOrderDelete関数とOrderClose関数です。

では、細かい仕様でも(・∀・)

bool OrderDelete( int ticket, color Color=CLR_NONE)
復帰値は、成功したかどうかですね。
成功ならtrueが、失敗ならfalseが戻ってきます
パラメータは
int ticket:OrderDeleteをしたいチケット番号
OrderSendの復帰値で帰ってきたticketを指定します
color Color=CLR_NONE:チャート上の矢印の色
調べてないから相変わらず意味不明(´Д`;)ヾ

bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)
これも復帰値は成功したかどうかです
成功ならtrueが、失敗ならfalseが戻ってきます
パラメータは
int ticket:OrderDeleteをしたいチケット番号
OrderSendの復帰値で帰ってきたticketを指定します
double lots:ロット数
クローズしたいロット数です。さすがにOrderSendで指定したロット数以上は指定できないと思うけど
そのあたりは機会があれば調べますね。今回はOrderSendと同じ値を指定しておきます
double price:クローズ価格
ポジションを閉じる場合の価格です。売買の種類によってBidやAskを指定するよよいでしょう
int slippage:スリップページ
OrderSend関数と同じで、スリップの許容量です
color Color=CLR_NONE:チャート上の矢印の色
・・・気にしたら負けだ!

では、まずはOrderClose->OrderDeleteの順番でやってみたらどうなりますかね。
前回の実験用のEAを改良してやって見ましょう
EAのソースはこちら→ダウンロード(mq4)
結果を編集したのはこちら→ダウンロード(csv)

結果を見てみると。
ポジションを持った状態だと、OrderCloseは有効で、注文中な状態だとOrderDeleteが有効みたいですね
また、OrderCloseが成功した注文に対してOrderDeleteをやっても無意味なようです
IFDONE注文で、現在ポジションを持っていても、そのままOrderCloseは通るんですね
面白いことにOrderDeleteをすると、クローズ日時やコメントが変わるんですね(・∀・)

最初のOrderSendが完結してもOrderCloseが成功してもOrderDeleteしてもクローズ日時が入るなら・・・
これ設定されてれば、この注文は終了ですね!

念のためOrderDelete->OrderCloseの順序もやってみました
EAのソース→ダウンロード(mq4)
結果の編集→ダウンロード(csv)
まあ、単純に順序を逆にしただけなので、あまり面白い結果じゃないですね。

次回はポジションと注文の取り消しについて、OrderSelectをつかってもう少しスマートな方法を考えますよ(*'-')
このブログの目的のひとつである自分でEAを作るに向けての、MQL研究です。
ちょこちょこツール用のEAを作っていましたけど、実はMQLのことがさっぱりなのです(*'-')
何から調べようかなぁ・・・と考えて、とりあえずトレード関数から調べてみようと思い立ちました

EA上で売買注文を出す関数は決まっていて
OrderSend()
というので出す模様です

関数の細かい仕様を見てみましょうか
復帰値:成功の場合はチケット番号 失敗の場合は-1
つまり、0以上なら、オーダーは成功というわけですね(・∀・)

パラメータ
string symbol:売買する通貨ペア
これはEAを稼動しているときに使ってる通貨が一般的でしょうからSymbol()関数を使えばよさそうです
int cmd:取引タイプ
成行注文とか、指値注文とかを指定するみたいです。
どんなものを指定するのかは、検証用のEA作ったのでその中でw
double
volume:ロット数
説明するまでもないですかね。ちなみにMQLでは0.1ロットで1万通貨になります
double price:オープン価格
売買するときの値段です。成行ではBidやAskなどの固定変数を使えます
int slippage:スリップページ
FX会社で売買するときと同じですね。スリップを許すPipを指定です
double stoploss:ストップロス値
損切りするときの値段です
double takeprofit:リミット値
利確するときの値段です。上のストップロス値と組み合わせれば Ifdone注文やif-OCO注文が可能になりますね
string comment=NULL:コメント
注文を出すときに、コメントがつけられます
int magic=0:マジックナンバー
複数のEAで注文を出したときに、どのEAからを区別するための値です。今回は気にしない方向でw
datetime expiration:有効期限
注文の有効期限らしいですが、datetime型と面倒な型なので私は見なかったことにしておきますww
必要になりそうなら、そのときに調べるということでw
color Color=CLR_NONE:チャート上の矢印の色
これも意味不明(´Д`;)ヾ

さてさて、関数を調べたら、とりあえず実験してみましょうか
今回の実験EAはこれ→ダウンロード(mq4)
で、実験結果を編集したのがこれ→ダウンロード(csv)

動きとしては、
1.開始直後に成行、指値、逆指値で注文をだす→注文の状態を表示
2.指値、逆指値が通ったくらいのタイミングで注文の状態を表示
3.EAが終わるくらいで指値や逆指値で利確や損切りされた注文の状態を表示
の3点です(*'-')

結果のCSVでは、注文順に並んでおります。注文番号#1では成行の売り注文ですがそれを1.2.3.の順番で並べました

ざっと結果を見てみると
注文番号#4では指値の買い注文でしたが、オープン日時とトレードタイプが変更されています。つまり注文を出した時点と注文が約定されたときで値が変わるわけですね。つまり成行以外の注文を出した場合、トレードタイプが変化したら、注文が通ったとみなしてよさそうです

注文番号#7は成行注文で利確の注文も同時に出したやつですが、利確のときにクローズ日時が入っています。つまりここに値が入ればこの注文は完結してると見てよさそうです

注文番号#11は上記#4と#7が見事に組み合わさっていますね。

出した注文がどうなってるかというのをEA上で知りたいときは
新規注文:トレードタイプがSellやBuyになっているか
決済注文:クローズ日時が入っているか
という感じでしょうか

とりあえず、今日はここまででw
次は、OrderCloseとかの組み合わせで調べたいと思います(*'-')
こんばんは。

私が普段トレードの参考にしているツール作成者
FXに人生を賭ける男さん
からクリスマスプレゼントとして新ソフトが公開されました。

今度は15分足の4本値を使用するようです。

それに対応して、15分足での4本値をファイルに出力するEAを作成しました
ダウンロード(mq4) ←これ
ファイルをダウンロードしたらMT4のインストールフォルダ内の、
experts
フォルダにこのファイルをコピーしてMT4を起動してEAのバックテスト機能を実行してください。
(例:C:\Program Files\121MetaTrader\experts)
時間足が変わると1つ前の時間足の4本値をファイルに出力する簡単なEAです。
ですので、期間はM15を指定して実行してください。
出力ファイルはMT4インストールフォルダ内の、
tester\files
フォルダに”M15_USDJPYYYYYMMDD.csv”のような形式で出力されます
(例:C:\Program Files\121MetaTrader\tester\files\M15_USDJPY2008121.csv)

出力されたファイルをメモ帳で開いて、全部をコピーして、新ソフトにペーストすると
そのまま結果が表示できると思います
ご質問があれば、答えられる範囲でお答えしますので、お気楽にどうぞ(*'-')



忍者ブログ [PR]
カレンダー
02 2025/03 04
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
カウンター
プロフィール
投資は自己責任・自己判断で実施するようお願いいたします。 ここの情報を見て損失が発生しても責任は負えませんのでご注意してください
HN:
Aki
性別:
男性
最新コメント
[06/06 fxjol]
[02/18 FXに人生を賭ける男]
[01/01 Aki]
[01/01 Aki]
[12/31 FXに人生を賭ける男]
ブログ内検索
最新トラックバック
アクセス解析