//+------------------------------------------------------------------+// Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу, типу и магикуbool isLossLastClosePos(string sy, int op, int mn) {
datetime t=0;
int i, j=EMPTY;
for(i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderMagicNumber()!=mn) continue;
if(OrderSymbol()!=sy) continue;
if(OrderType()!=op) continue;
if(t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
}
return(false);
}
//+------------------------------------------------------------------+// Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу и магикуbool isLossLastClosePos(string sy, int mn) {
datetime t=0;
int i, j=EMPTY;
for(i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderMagicNumber()!=mn) continue;
if(OrderSymbol()!=sy) continue;
if(OrderType()>1) continue;
if(t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
}
return(false);
}
//+------------------------------------------------------------------+
このようにチェックしています。
if(isLossLastClosePos(symbol, magic)) {
// последняя позиция закрыта в убытке
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает тип закрытия по профиту, //| 1= позиция закрыта в профите, |//| 2- позиция закрыта в минусе |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int isCloseLastPosByStoporTake(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
double ocp=OrderProfit();
if (OrderProfit()+OrderCommission()+OrderSwap()>0) return(1);
if (OrderProfit()+OrderCommission()+OrderSwap()<0) return(2);
}
return(0);
}
それを知るために、こうするのです。
if(isCloseLastPosByStoporTake("",-1,-1)==1) // Позиция закрыта в плюсеif(isCloseLastPosByStoporTake("",-1,-1)==2) // Позиция закрыта в минусе
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает флаг убыточности последней позиции. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isLossLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderProfit()<0) return(True);
}
return(False);
}
メソッドの末尾にあるconst修飾子は何のためにあるのですか?
変数名の初期化でこの修飾子を使うと、どんなメリットがあるのでしょうか?
変数が変化して違う値を得ることができないことは承知しています。
もしかして、このモディファイアでプログラムの動作が速くなる?
メソッドの末尾にあるconst修飾子は何のためにあるのですか?
変数名の初期化でこの修飾子を使うと、どんなメリットがあるのでしょうか?
変数が変化して違う値を得ることができないことは承知しています。
もしかして、このモディファイアを使うと、プログラムの動作が速くなるのでは?
これはOOPからです。これは、そのメソッドが呼び出されたオブジェクトを変更しないことを意味します。議論は何の関係もない。
そのメリットは、プロトタイプを見たときに、オブジェクトが変更されないこと、つまり可視性があることがわかることです。
こんにちは、皆さん )私の目標は、注文履歴を選択する関数を書くことで、そこに私は最後の注文が閉じられた値、正または負の値を確認する必要があります。誰がやっているのかアドバイスしてください(もう頭を悩ませています)))))
よろしくお願いします。
こんにちは、皆さん )私の目標は、注文履歴を選択する関数を書くことで、そこに私は最後の注文が閉じられた値、正または負の値を確認する必要があります。誰がやっているのかアドバイスしてください(もう頭を悩ませています)))))
よろしくお願いします。
MQL4
このようにチェックしています。
こんにちは、皆さん )私の目標は、注文履歴を選択する関数を書くことで、そこに私は最後の注文が閉じられた値、正または負の値を確認する必要があります。誰がやっているのかアドバイスしてください(もう頭を悩ませています)))))
ありがとうございました。
それを知るために、こうするのです。
MQL4
このように確認します。
))))
))))
今、自分が馬鹿なことを言ってるのに気づいてる?
コードは私のものです。ロジックや変数名はイゴールからパクりました。だから、私はあなたのヒントを受け取らない。関数名?意味が反映されているのか、それとも英語に無知なのか?
MQL4
このように確認します。
をご覧ください。
ありがとうございました!!!