2010年06月13日
Meta4 調べても分からなかった 入力レコ-ド
Meta4 調べても分からなかった 入力レコ-ド
本当は作る前から知りたかったんだけど、
分からぬまま作っていて、作っていく課程でこんな感じか? って分かりましたので掲載しときます。
あくまでも私感ですけど、仕様書を読んだわけではないので・・・
自動売買は受身の取引で、入力レコ-ドは、マ-ケッタ-のレ-ト提示により不規則に送られてくる。
項目は、通貨種類、売り(Bid) 、買い(Ask)レ-ト。
それと同時に、日付、時間など、関数で得られる情報と
自分が出力したレコ-ドが入力レコ-ドとして入ってくる。
入力レコ-ド :
各関数で得られる情報
(日付、時間、通貨種類、売り(Bid)レ-ト、買い(Ask)レ-トなど)
と、
自分が出力したOrderSend注文情報
[ [番号、ポジション種類(Sell Buyなど)、通貨種類、ポジョン数量]× Order個数 ] )
↑10回OrderSendすると10個の情報を格納
何個貯められるかは分かりませんが
ある程度沢山貯められるようです。
入力レコ-ドはこんな感じの様です。
-----------------------------------------------------------------------------------------------------------------
プログラムは、各関数で情報を得て、大まかに下記をする事になります。
1.入力レコ-ドの通貨種類の確認。
if(Symbol() == "AUDJPY") {
m = 9;
}
こんな感じで、通貨名"AUDJPY"はFX会社によってちょっと変わってきます。
2.決済したい通貨であれば、決済条件に合えば決済。
if( OrderOpenPrice() <= Bid - w_pip * Point ) {
OrderClose(OrderTicket(),OrderLots(),Bid,s,Green);
}
3.注文したい通貨であれば、注文条件に合えば注文。
if(OrderOpenTime_new + o < Time[1]) {
OrderSend(Symbol(), OP_BUY, lots, Ask, s, 0, 0, "Buy", m, 0, Blue);
}
簡単に書くとこんな感じで、取引条件を、いろいろ考えて作ります。
で、OrderClose()決済、OrderSend()注文で出力レコ-ドを返し、
[ OrderSend()注文 - OrderClose()決済 ] 処理され、次の入力レコ-ドとして入ってきます。
この繰り返しでプログラムはエンドレスに動きます。
簡単な物はすぐ出来ちゃいますが、ちょっと複雑にすると、なかなか大変になります。
今は、買いと売りのプログラムを合体させ様と奮闘中ですが、これがなかなか大変です。
これが出来ちゃえば、第3段は終了で、後は、手動入力のパラメ-タ-を自動で指定させてあげるロジックを組み込んでプログラムは本当の完成になります。
本当は作る前から知りたかったんだけど、
分からぬまま作っていて、作っていく課程でこんな感じか? って分かりましたので掲載しときます。
あくまでも私感ですけど、仕様書を読んだわけではないので・・・
自動売買は受身の取引で、入力レコ-ドは、マ-ケッタ-のレ-ト提示により不規則に送られてくる。
項目は、通貨種類、売り(Bid) 、買い(Ask)レ-ト。
それと同時に、日付、時間など、関数で得られる情報と
自分が出力したレコ-ドが入力レコ-ドとして入ってくる。
入力レコ-ド :
各関数で得られる情報
(日付、時間、通貨種類、売り(Bid)レ-ト、買い(Ask)レ-トなど)
と、
自分が出力したOrderSend注文情報
[ [番号、ポジション種類(Sell Buyなど)、通貨種類、ポジョン数量]× Order個数 ] )
↑10回OrderSendすると10個の情報を格納
何個貯められるかは分かりませんが
ある程度沢山貯められるようです。
入力レコ-ドはこんな感じの様です。
-----------------------------------------------------------------------------------------------------------------
プログラムは、各関数で情報を得て、大まかに下記をする事になります。
1.入力レコ-ドの通貨種類の確認。
if(Symbol() == "AUDJPY") {
m = 9;
}
こんな感じで、通貨名"AUDJPY"はFX会社によってちょっと変わってきます。
2.決済したい通貨であれば、決済条件に合えば決済。
if( OrderOpenPrice() <= Bid - w_pip * Point ) {
OrderClose(OrderTicket(),OrderLots(),Bid,s,Green);
}
3.注文したい通貨であれば、注文条件に合えば注文。
if(OrderOpenTime_new + o < Time[1]) {
OrderSend(Symbol(), OP_BUY, lots, Ask, s, 0, 0, "Buy", m, 0, Blue);
}
簡単に書くとこんな感じで、取引条件を、いろいろ考えて作ります。
で、OrderClose()決済、OrderSend()注文で出力レコ-ドを返し、
[ OrderSend()注文 - OrderClose()決済 ] 処理され、次の入力レコ-ドとして入ってきます。
この繰り返しでプログラムはエンドレスに動きます。
簡単な物はすぐ出来ちゃいますが、ちょっと複雑にすると、なかなか大変になります。
今は、買いと売りのプログラムを合体させ様と奮闘中ですが、これがなかなか大変です。
これが出来ちゃえば、第3段は終了で、後は、手動入力のパラメ-タ-を自動で指定させてあげるロジックを組み込んでプログラムは本当の完成になります。
【(カテゴリなし)の最新記事】
投稿者:Meta4 Blog|14:53
この記事へのコメント