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

 
Natashe4ka:

これは「cnt」がゼロに設定されている場合も正しいのですが、その場合はスクリーンショット3のようにまた訳の分からない値になってしまいます(利益の値は4.27であるべきです)。

double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
  int cnt=0;
  double LastProfit=0;
   for(i=0;i<OrdersHistoryTotal();i++)
     if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
       if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic) continue;
       if ((op<0 || OrderType()==op) && cnt==0) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); cnt++;} else {cnt=0;}
       }
  return(LastProfit);
   }

論理的思考ができないとダメなんです(

このような理屈では、現実の市場では3日で預金が溶けてしまいますよ。

 
Vitaly Muzichenko:
論理的に考えないとヤバい(

そうなんです。

保留中の注文を削除 しました

 
Natashe4ka:

そうなんです。

保留中の注文は削除 されました

そのまま理解できる。
 

OK、では、OrderCloseTime()に等しいクローズドオーダーのチケットを返して、その利益を計算するにはどうすればいいのでしょうか?
こんな感じ。

if (t<OrderCloseTime()) {t=OrderCloseTime();r=OrderTicket();profit+=OrderProfit()+OrderCommission()+OrderSwap();}
 
Natashe4ka:

OK、では、OrderCloseTime()に等しいクローズドオーダーのチケットを返して、その利益を計算するにはどうすればいいのでしょうか?
こんな感じ。

if (t<OrderCloseTime()) {t=OrderCloseTime();r=OrderTicket();profit+=OrderProfit()+OrderCommission()+OrderSwap();}


ストップで閉まったらどうするんだ?

ticket=OrderClose(......);

if(ticket>0){//увеличить размер массива на один и записать тикет закрытого ордера}

 
ドローダウンや利益の累計を記録するシステムを書いたのだが、それは次のようなものだった。オープニング中の各マーケットオーダーに対して、このオーダーのチケット名を持つグローバル変数が作成され、累積損益を再計算する必要があるときは、単に現在のオーダーリストをグローバル変数の リストと照合し、余分な変数を削除して利益をチケット名から直接追加して会計処理を実行します。
 
Renat Akhtyamov:

ストップで閉まったらどうするんだ?

ticket=OrderClose(......);

if(ticket>0){//увеличить размер массива на один и записать тикет закрытого ордера}

さて、どんなアレイ、どんなチケット、どんなオーダー?

ターミナルを最初に再起動したり、週末にシャットダウンしたりすると、単純にすべてのデータが失われ、書き込みや計算がすべて終了してしまうのです。

 
Aleksey Semenov:
例えば、累積ドローダウンや利益をカウントするシステムを自分用に書いていた時は、こんな感じでしたね。オープニング中の各マーケットオーダーに対して、このオーダーのチケット名を持つグローバル変数が作成され、損益を再計算したいときには、単に現在のオーダーリストをグローバル変数の リストと照らし合わせて、余分な変数を削除して、チケット名から直接利益を追加する計算を実行します。

インジケータでは問題ありませんが、EAでは何十ものグローバル変数を列挙するため、端末がフリーズしてしまうことがあります。

開店時間と閉店時間があり、それを使って仕事をしなければならず、入手に苦労することはなく、1回の記録で口座の状態に関するすべての情報が得られ、自転車も必要ありません。

 
Vitaly Muzichenko:

どんなアレイ、どんなチケット、どんなオーダー?

端末の最初の再起動や 週末のシャットダウンの、単純にすべてのデータを失い、それですべての書き込みと計算が終了します。

無理もない

説明するまでもないでしょう。

 
Vitaly Muzichenko:

インジケータでは問題ありませんが、EAでは何十ものグローバル変数を列挙するため、端末がハングアップする可能性があります。

開店時間と閉店時間がある、それを元に仕事をする、難しいことはない、一回の記録で口座の状態の情報がすべてわかる、自転車がなくても大丈夫だ。

例えば、ターミナルに何百もの未使用のグロブ変数がある場合、そうです - 再構築は悲しいことに終了します、そうでなければ、正しく書かれていれば、非常に迅速に動作します
理由: