if ((FastEma - SmallEma) > Compartor*Point && ChPos(OP_BUY,1111) < OpenPosition)
そんな機能があるのに必要ない、必要なのは 一行だけ「注文が複数ある場合は・・・。其れでこそ
あなたが示したのと同じ関数の私のデータは、ここに格納されています。
int total_order; // переменная в которой хранится общее количество открытых ордеров в терминалеint my_total_order; // переменная в которой хранится общее количество открытых ордеров с нашим Magic
if (OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES))Print("function to place BuyStop order : ", OrderOpenPrice()) } else Print("Error # ", GetLastError(), " function for placing BuyStop order",MarketInfo(Curr_symb,MODE_ASK)); return(ticket)です。 }
私はただ関数を呼び出すだけで、必要なのは1行の「もし注文が1つより多いなら・・・」だけです。ということで、全機能を提供することになりました。
以下は、私の注文データの保存方法です。
簡単なもので、図書館に置いておくのです。
カウントする注文の種類とそのマスタを入力すると、オープンまたはセットされた注文の数を返します。
次のような使い方ができます。
if ((FastEma - SmallEma) > Compartor*Point && ChPos(OP_BUY,1111) < OpenPosition)
図書館に置いておくと面倒なことはありません。
カウントする注文の種類とそのマスターを入力すると、未決済注文または設定された注文の数を返します。
これは、次のように使うことができます。
if ((FastEma - SmallEma) > Compartor*Point && ChPos(OP_BUY,1111) < OpenPosition)
そんな機能があるのに必要ない、必要なのは
一行だけ「注文が複数ある場合は・・・。其れでこそ
あなたが示したのと同じ関数の私のデータは、ここに格納されています。
と、こんな感じです。
できたと思う。
static int aaa = OrdersHistoryTotal()+OrdersTotal( )
if (あなたの条件 && aaa < OrdersHistoryTotal() + OrdersTotal() )
{
事業者
aaa=OrdersHistoryTotal()+OrdersTotal()
}
そうであれば、やはりマジシャンを意識した機能に入れた方が良いのでは......。現在取り組んでいることを教えてください。ロジックがちょっとおかしいのですが、あと1つ注文を出すと、OpenPositionより大きくない注文を出しやすくなりませんか?
この関数は、未決済注文と保留注文の合計数を返します。 OP_BUY注文がいくつあるか、OP_BUYLIMIT OP_SELLLIMITがあればOP_SELLなどが表示されない。
解ったのですが、今度はif関数の問題が解りません
は、最初の値が実行されることがポイントです。
これは、(HaveBuyLimitOrderEnd=true) の場合、動作しません。
{ModifyBuyStopOrder(PRAskS);//選択
} }
つまり、HaveBuyLimitOrderEndという注文があれば、それを価格変更で変更する PRAskS
上記のコードで、HaveBuyLimitOrderEndの値をvoid Myorders()から取得しています。
の値は、if(bt==1&&bl==7)がメインなので、これが真なら、以下の全てを使用します。
OrderLots()==3*Lot に設定したため、haveBuyLimitOrderEnd=true になっている可能性が高い。
赤色でハイライトされている部分に注目してください。取引注文の種類は同じで、パイプの変数が異なって設定されている、これはどのようにあるべきかということです。
はい、それは別の開口部の関数と私はOrderType()の要求をしないと、それが開いているかどうかフラグを要求したので、あるべきですが、問題は他の要求も、私は最初に投げたこの動作しないため、この関数ではありません、そして同じ関数に正常にオープンすること
ということは、オペレータのリクエストに問題があるのでは?
問題は別のところにあるようだ。でも、コードは見た方がいいでしょうね。
問題は別のところにあるようだ。でも、コードを見ないとわからないと思うんです。
確かに他の場所ではなく、他は全て動作します。問題はリクエスト(HaveBuyLimitOrderEnd==true)が間違っているので、他にどのように修正と削除を指示すれば良いのか悩んでいます。
またはクエリ自体が間違っている
if(bs==1&&bl==3)
{OpenBuyLimitOrderEnd(Lot*15,PRAskL)。
if (HaveBuyLimitOrderEnd== true)
{ModifyBuyStopOrder(PRAskS)です。
} }
はい、それは別の開口部の関数と私はOrderType()の要求をしないと、それが開いているかどうかフラグを要求したので、あるべきですが、問題は他の要求も、私は最初に投げたこの動作しないため、この関数ではありません、そして同じ関数に正常にオープンすること
ということで、問題は演算子のクエリにあります。
赤印の関数でHaveBuyLimitOrderEndがパイプに設定されているかどうか。 もしそうでなければ、ifの前にMyorders()を呼び出す必要があります。そうでなければ、そこに何があるのかわからないのです。また、念のため、フラグ(変数)は
HaveBuyOrder = false。
HaveSellOrder = false。
HaveBuyStopOrder = falseとする。
HaveSellStopOrder = falseとする。
HaveBuyLimitOrder = falseとする。
HaveSellLimitOrder = falseとする。
HaveBuyLimitOrderEnd = falseとする。
HaveSellLimitOrderEnd = falseとする。
は、グローバルレベルで定義する必要があります。
パイプの中でHaveBuyLimitOrderEndフラグが赤く設定されているかな。 そうでない場合は、ifの前にMyorders()を呼び出す必要がありますね。そうでないと、そこに何があるのかがわからない。また、念のため、フラグ(変数)を
HaveBuyOrder = false。
HaveSellOrder = false。
HaveBuyStopOrder = falseとする。
HaveSellStopOrder = falseとする。
HaveBuyLimitOrder = falseとする。
HaveSellLimitOrder = falseとする。
HaveBuyLimitOrderEnd = falseとする。
HaveSellLimitOrderEnd = falseとする。
はグローバルに定義する必要があります。
グラバルレベル
bool HaveBuyOrder; // 市場公開の買い注文があるかどうかのフラグ
bool HaveSellOrder; // 売り注文の保有フラグ
bool HaveBuyStopOrder; // 未決済の買い注文のフラグ
bool HaveSellStopOrder; // 未決済の売り注文がある場合のフラグ
bool HaveBuyLimitOrder; // 未決済の買い注文がある場合のフラグ
bool HaveSellLimitOrder; // 未決済の売り注文がある場合のフラグ
bool HaveBuyLimitOrderEnd; // 未決済の買い注文があるかどうかのフラグ
bool HaveSellLimitOrderEnd; // 保留中の売り注文を開くフラグ
オーダーオープン機能にあります。
ticket = OrderSend(Curr_symb,OP_BUYSTOP, Lot, PRAskS, Slippage, SL, TP, 0, Magic, 0,CLR_NONE);
if (ticket > 0) {
HaveBuyStopOrder = trueとする。
if (OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES))Print("function to place BuyStop order : ", OrderOpenPrice())
}
else Print("Error # ", GetLastError(), " function for placing BuyStop order",MarketInfo(Curr_symb,MODE_ASK));
return(ticket)です。
}
というわけで、他はすべてうまくいく