クローズドオーダーの利益計算 "HELP" - ページ 2

 
Renat Akhtyamov:

いえ、すでに書かれているようなことではありません。
どのクローズド・オーダーの利益計算に興味があるか、言葉で教えてください。
- ひごとに
- 赤字
- ラストオーダー
なのか、それとも別の何か?
シリーズを説明する

"とりあえず "最後のクローズドオーダーの連発

 
Natashe4ka:

最後のクローズドオーダーの "とりあえず "シリーズ

つまり、直近で決済された一連の注文に関する情報が必要なのですが、私の理解が正しいでしょうか?

このアプローチを実装するには、まず、成功したクロージングごとにオーダーチケットの 配列を埋めて、必要なフォームでクローズしたオーダーの情報を引き出す必要があります

自分でできる?

 

トライ


Comment( LastProfitCL(-1, 0) );

//+----------------------------------------------------------------------------+
//|    Возвращает суммарный профит в валюте депозита серии закрытых ордеров    |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
  for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
    if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
     if(t<=OrderCloseTime()) {
       t=OrderCloseTime();
       LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
  }}}} 

 return(LastProfit);
}
 
Vitaly Muzichenko:

トライ


Comment( LastProfitCL(-1, 0) );

//+----------------------------------------------------------------------------+
//|    Возвращает суммарный профит в валюте депозита серии закрытых ордеров    |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
  for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
    if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){
     if(t<=OrderCloseTime()) {
       t=OrderCloseTime();
       LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
     }
    }
   }
  }
return(LastProfit);
}

同時に閉じない場合はどうするのですか?

ちょっと違うか。

そして、決算書を提出するときに、それを覚えていれば、大丈夫です。

が、この行は...

t=OrderCloseTime();

は必要ありません。

シリーズ全体の合計を引っ張ってきます

しかし、マダムは、最初の投稿で理解したように、より詳細な情報を求めています。

 
Renat Akhtyamov:
同時に閉じない場合はどうするのですか?
機能が閉じれば、すべてがうまくいく
 
Renat Akhtyamov:

つまり、私が正しく理解していれば、最後に閉じた一連の注文に関する情報が必要なのですね?

この方法を実装するには、まず、成功したクローズ時のオーダーチケットの 配列を作成し、クローズされたオーダーの情報を引き出す必要があります

自分でできる?

例を挙げてアドバイスしてください。

すなわち

if (cnt>0) Ticket=OrderTicket()-1;

そして、比較する ?

 
Natashe4ka:

例を挙げて ほしい。

すなわち

if (cnt>0) Ticket=OrderTicket()-1;

そして、比較する ?

問題ありません。

あとは、そのシリーズのクローズドオーダーの情報がどのように見えるか?

振込なのか、金額は+と-で分けるべきなのか?

 

のインジケーターがあります。

アイプロフィット

今日、週、月、年の現在の利益を 出力します。

 
Natashe4ka:

より良い例としては

以下はその一例です。

int ClosePosition(int type=-1,int mg=-1) {
GlobalVariableSet(GetGlobalVariableName("LastProfit"), TimeCurrent()); // запомним время закрытия
// здесь код закрытия всех и сразу, нужен цикл, чтоб не выходил с функции до полного закрытия всех
}

続きはこちら

//+----------------------------------------------------------------------------+
//|    Возвращает суммарный профит в валюте депозита серии закрытых позиций    |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
  for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
    if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){
     if(t<=OrderCloseTime()) {
       t=OrderCloseTime();
       LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
  }}}}
return(LastProfit);
}

//===============================================================================================
//----------------------- Создает и возвращает имя глобальной переменной -----------------------+
//===============================================================================================
string GetGlobalVariableName(string name="", string symb="0") {
if(symb=="0") { symb=Symbol();}
  if(!MQLInfoInteger(MQL_TESTER)) {
   return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_"+name);
  } else {
   return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_tester"+"_"+name);
}}


端末を再起動しても表示される

void OnTick()
{
   Comment( LastProfitCL(-1, (datetime)GlobalVariableGet(GetGlobalVariableName("LastProfit"))) );
}
 
Alekseu Fedotov:

のインジケーターがあります。

アイプロフィット

今日、週、月、 年の現在の利益を 出力します。

10年分の情報がないのは不向きだ。