アプリ版:「スタンプのみでお礼する」機能のリリースについて

メタトレーダー(MT4)にて半自動売買のソフトを作成しております。
プログラミングに行き詰まっておりますので、どなたか経験のある方ご存じの方がいらっしゃいましたらご教授下さいませ。

下記の様に指値売り又は指値買いのプログラムを作っております。
これは、ある条件のトラップを仕掛け、希望の指値に達すると売り注文または買い注文を行います。
このトラップを複数仕掛けております。
このうち一つでも決済されれば、あるものは損切りもしくは決済を行ったり、注文取消を行ったりしたいのです。


例えば95円で売り注文、ストップロスが「95+0.6」,決済値が「95-0.3」。
double pr1 = 95;  //例えば95円
chiket1 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr1,3,pr1+0.6,pr1-0.3,"",123451,0,Red);
chiket2 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr2,3,pr2+0.6,pr2-0.3,"",123452,0,Red);
chiket3 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr3,3,pr3+0.6,pr3-0.3,"",123453,0,Red);
chiket4 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr4,3,pr4+0.6,pr4-0.3,"",123454,0,Red);
chiket5 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr5,3,pr5+0.6,pr5-0.3,"",123455,0,Red);


質問1.この注文のうち、どれが決済されたかが確認出来る方法もしくは関数が知りたいのです。
マジックナンバーもしくはチケットナンバーで判明出来れば有りがたいのですが。

出来れば質問2もお願いします。
質問2.指値注文の自動売買は、ストラテジーテスターにてビジュアルモードで検証出来ないので検証する方法があれば知りたい。(指値に達しても約定しない)

以上宜しくお願い致します。

A 回答 (2件)

こちらの記事で回答してみました。


よろしければごらんいただければと思います。

http://ameblo.jp/ftlabo-kirin/entry-10675218310. …

この回答への補足

早速のご回答有り難う御座います。

家に帰り早速試したいと思っております。
ただ、ストラテジーテスターでは旨くテストが出来ないため、デモ口座を利用し試験をするため、結果がいつ出るかはなかなか分かりません。
困っております。


しかし、Start()関数の中でループしており、例えば、3つの約定されたポジションの内一つ決済されれば2個になりいつも現在数が確認されます。

ところが、オーダーされて決済されたマジックナンバー(false)とオーダーされていなくて勿論決済もされていないマジックナンバーの区別はこれで確認出来るのでしょうか。

イマイチ理解出来ておりません。
宜しくお願い致します。



//オーダーの有無を調べる
bool FTLOrderSelect(int magic, int type = -1)
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS) == false) break;
if(OrderSymbol() != Symbol() || OrderMagicNumber() != magic) continue;
if(OrderType() != type && type != -1)continue;

return(true);
}
return(false);
}

補足日時:2010/10/13 14:43
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありませんでした。

結果待ちに時間が掛かってしまいました。

結果、なんとか動くソフトが出来つつあります。

有り難うございました。

お礼日時:2010/10/26 09:15

No.1さんの記載したソースコードの中で使われている関数のリファレンスを調べていけば判る事です。



http://www.metasys-seeker.net/MQL4_Reference_ver …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!