Wizard In The Market
システムトレードの魔術師

*

■超直感!MT4プログラミング講座■ 第28回 決済スプリクトの作成(1)

公開日: : 最終更新日:2015/01/13 MT4(MQL4)プログラミング講座

こんにちは!キリンです。
引越しも終わり、かなり落ち着いてきました。
時間的制約が皆無になると、セルフコントロール能力が問われます。
感情のみならず、全てのことをコントロールできて初めて一人前だと思います。
まだまだ、これからですね!
なんでもできるんだから、なんにでもチャレンジしていかないと。
こんなに天気も良いですしね!!
さて、今日は昨日の分も含めて書いちゃいます。


第28回 決済スプリクトの作成(1)

■前回の宿題の回答
■決済スプリクトの作成
■今回のMQL関数の説明
■前回の宿題の回答
・・・っと言っても「りある」さんにがっつり正解を書いていただいたので、
私から説明することは解説ぐらいですね。
りあるさんの回答

int start()
{
//—-
double stopPrice = 0;
double takeProfit = 0;
//if(Slpips != 0) stopPrice = Ask – Slpips*Point;
if(Slpips != 0) stopPrice = Bid + Slpips*Point;
//if(Tppips != 0) takeProfit = Ask + Tppips*Point;
if(Tppips != 0) takeProfit = Bid – Tppips*Point;
OrderSend(NULL, OP_SELL, Lots, Bid, Slippage, stopPrice, takeProfit, COMMENT, MAGIC, Blue);
//—-
return(0);
}

うん!完璧です!ダメだしの余地がない!w
ということで解説に移ります。
「売り」になると、「買い」より変更しなければならない点があります。
それが、
・StopとLimitの値を計算する引き算と足し算が逆になる
・AskをBidにしなければならない
・矢印の色を青にする
上記3つが必要だったんです。
これが含まれたものが今回の答えでした。
みなさんできましたか?
■決済スプリクトの作成
今日からは、発注を行った後の決済操作のためのスプリクトの作成を行っていきます。

//+------------------------------------------------------------------+
//| close.mq4 |
//| Kirin-FTLabo |
//| http://ameblo.jp/ftlabo-kirin/ |
//+------------------------------------------------------------------+
#property copyright “Kirin-FTLabo”
#property link “http://ameblo.jp/ftlabo-kirin/”
extern int Slippage = 5;
extern int MAGIC = 123;
//+------------------------------------------------------------------+
//| script “close first market order if it is first in the list” |
//+------------------------------------------------------------------+
int start()
{
int ticket = 0;
for(int i=0; i < OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS) == false) break; if(OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue; int type = OrderType(); if(type == OP_BUY || type == OP_SELL) { ticket = OrderTicket(); break; } } if(ticket == 0) return(false); OrderClose(ticket, OrderLots(), OrderClosePrice(), Slippage, Red); //---- return(0); } //+------------------------------------------------------------------+

かなり省略して最小限の機能だけに抑えたのですが、
結構な量になっちゃいました。
これから徐々に説明していくのでみなさん付いてきてくださいね!
■今回のMQL関数の説明
▼OrderTotal()
現在、持っている注文数を返します。
▼OrderSelect(int index, int select, int pool=MODE_TRADES)[詳しい説明はこちら]
注文を選択します。
selectの種類によってindexの数字の扱い方が変わります。
通常はSELECT_BY_POSを使う方法だけ覚えておけばいいと思います。
詳しい説明はfor文の説明の際にします。
▼OrderSymbol()
OrderSelect()で選択されたポジションのシンボル(通貨ペア)を返します。
▼Symbol()
現在表示中のチャートのシンボルを返します
▼OrderMagicNumboer()
OrderSelect()で選択したポジションのマジックナンバーを返します。
▼OrderType()
OrderSelect()で選択したポジションの注文の種類を返します。
▼OrderTicket()
OrderSelect()で選択したポジションのチケットナンバーを返します。
(チケットナンバーは、OrderCloseの際に必ず必要になります。)
▼OrderClose(int ticket, double lots, double price, int slippage, int color color=CLR_NONE)[詳しい説明はこちら]
ticketで指定されたポジションをクローズします。
これも実際のプログラムの説明の際に詳しく説明します。
▼OrderLots()
OrderSelect()で選択したポジションのロット数を返します
▼OrderClosePrice()
OrderSelect()で選択したポジションの種類に応じて、クローズ値を返します。
買いならBid,売りならAskになります。
以上が、簡単な関数の説明です。
これを見るだけでもかなりの数ですよね。
でも、複雑なものはOrderSelectとOrderCloseのみです。
他はマジックナンバーを返したり、通貨ペアを返したりするだけの単純な動作なので、
お分かりいただけると思います。
次回から実際の動作について説明します。
最後までお読みくださりまして、ありがとうございます!

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 67 follow us in feedly

関連記事

no image

■超直感!MT4プログラミング講座■ 第36回 ブレイクアウトシステムのEA 作成

おはようございます。キリンです。 今日は、マインドアップ的読書感想文で非常に良いことが書いてありました。 その中のさわり

記事を読む

no image

■超直感!MT4プログラミング講座■ 第7回 インディケーター表示のために

没になった回です。 内容が雑なため、第8回へ移動していただければと思います。 興味のある方はご覧いただければと思います。

記事を読む

no image

■超直感!MT4プログラミング講座■ 第22回 ボリンジャーバンドのおさらい

こんばんは!キリンです。 お酒を飲んでからの講義は難しいですね。 何か対策を考えなければっ! 頑張って書いていきます。

記事を読む

no image

■超直感!MT4プログラミング講座■ 第33回 発注スプリクトをサブルーチン化する(2)

こんにちは。キリンです。 昨日、同い年の投資を始めている医大生とお会いしてきました。 すでに何度か事業にもチャレンジされ

記事を読む

no image

■超直感!MT4プログラミング講座■ 第27回 発注スプリクトの作成(3)

こんにちは!キリンです。 今日、ついに大阪の地に降り立ちました。 5年ぶりの大阪。あの頃とはまったく気持ちが違いますね。

記事を読む

no image

■超直感!MT4プログラミング講座■ 第20回 ボリンジャーバンドを作ろう(2)

おはようございますっ!キリンです。 脱サラ後は朝のブログを習慣にする予定です。 毎日文章を書くことは、文章力をつける上で

記事を読む

no image

■超直感!MT4プログラミング講座■ 第18回 インディケーターを色々いじってみよう

こんばんは!キリンです。 今日の名言 「日々、常に何か新しいことを学習し身につける。  それを繰り返すことによって、新し

記事を読む

no image

■超直感!MT4プログラミング講座■ 第13回 MQL基本関数・変数を覚えよう!

こんばんは!キリンです。 昨日、faiさん(とあるMetaTraderの備忘秘録)にブログで私の講座を紹介していただきま

記事を読む

no image

■超直感!MT4プログラミング講座■ 第15回 MQL定義済み関数について

こんにちは!キリンです。 このブログ自体が夜書くことが多いので、「こんにちは!」っていうと新鮮ですね。 春の陽気を感じら

記事を読む

no image

■超直感!MT4プログラミング講座■ 第10回 if関数を使ってみよう

こんにちは!キリンです。 昨日は土曜出勤でした。サラリーマン生活も残すところあと2週間弱。 今日は、引越し会社に引越しの

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

Ubuntu で仮想ディスプレイを使う

雑多な備忘録ですが、せっかくなので残しておきます。 Ubuntu 18.04 の resolv.c

PYPIへの登録を10秒でできるようになる方法

pip 使ってますよね Pythonを使っている人であれば、pip installでライブラリ

The art of debugging with GDB, DDD, and Eclipse の読書メモ

GDBの勉強がしたくて、下の本を原著で読んでみました。10年前の本だけど全然現役でした。

JupyterでボタンからJavascriptを実行して追加のアウトプットをさせない方法

Javascriptを実行するとアウトプットセルの行が増える これがとても面倒だった。上の

まだBokehで消耗してるの?これからはPandas-Bokehを使おうぜ

タイトルはあまり気にしないでください。全然、Bokehで消耗する価値があるとは思っています。ただ

→もっと見る

PAGE TOP ↑