//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает суммарный профит открытых позиций в валюте депозита |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double GetProfitOpenPosInCurrency(string sy="", int op=-1, int mn=-1) {
double p=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
p+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
}
}
return(p);
}
- 最後のバーの時刻を見る
- このバーで閉店したものを全部足すと
- 差し引く
といった具合に、1本ずつバーを増やしていきます。
算術がないとできないのですか?ユーザー定義関数のようなものを書けばいいのでは?
回答がオフトピックになっているので、おそらく私の質問の言い方が悪かったのでしょう。ポジションがクローズしたかどうかは気にしないし、1ティックの値にも興味はない。 比較のために、特定のシンボルの1、2、3本のバーを閉じたときの口座残高を 知りたいのですが。これらのバーのポジションは、他のシンボルのポジションを含めて、オープンおよびクローズされました:いくつかのポジションはプラス側でクローズされ、いくつかはマイナス側でクローズされ、いくつかはまだクローズされていない、したがってバランスが変更されています。具体的な数値を知りたい。ありがとうございます。
標準機能だけでなく、フォーラムからの検索などもできません。
テスターでは、複数のExpert Advisorを使用して取引を行う場合、その時点の残高を知ることができません。 もちろん、オープンした注文をカウントし、ターミナルの履歴からオープンした注文がない時間を探してみることもできます......また、最終的にすべてが考慮されるわけではありません
グローバルスコープに変数を記述し、OnTickで条件をチェックする if(OrderTotal()==0) StartBalance = AccountBalance();
で、テスターで 注文を開くと、残高の初期値が...。あなたはそれに利益注文の値を各バーに追加することができます、あなたはこれらの値を配列またはリストに追加することができます
しかし、いくつかのExpert Advisorを持つアカウントにこのコードを使用したい場合は、n-bars前の残高の検索としてではなく、オープンオーダーの合計利益としてあなたのタスクを定式化する必要があります。 あなたはどんなオープンオーダーを書き込まない、あなたは注文を開く - アレイにバーごとに利益を追加開始。 これは、残高に関連するTSではなく、期間(日、時間?)の端末履歴にオープンオーダー利益やクローズオーダーの利益であなたの論理の変更する機会を探していることを意味します。
標準機能だけでなく、フォーラムからの検索などもできません。
テスターでは、複数のExpert Advisorを使用して取引を行う場合、その時点の残高を知ることができません。 もちろん、オープンした注文をカウントし、ターミナルの履歴からオープンした注文がない時間を探してみることもできます...... また、最終的にすべてが考慮されるわけではありません
グローバルスコープに変数を記述し、OnTickで条件をチェックする if(OrderTotal()==0) StartBalance = AccountBalance();
で、テスターで 注文を開くと、残高の初期値が...。あなたはそれに利益注文の値を各バーに追加することができます、あなたはこれらの値を配列またはリストに追加することができます
しかし、いくつかのEAを持つアカウントでこのコードで動作するように、タスクはn-バー前のバランスを検索することではなく、オープンオーダーの利益を合計すること、ないオープンオーダー、オープンオーダー - 配列にすべてのバーの利益を追加し始めます。 それはあなたが残高に関連するあなたのTSのロジックではなく、期間(日、時間?)の端末履歴のオープンオーダー利益やクローズオーダーの利益に変更する機会を求めていることを意味します。
了解しました。詳しい返信ありがとうございました。
こんにちは!iCustomで作成したテクニカルインジケーターの ハンドルを作成した後に、入力パラメータを取得するにはどうすればよいですか?
例えば
iCustom(NULL,0, "name_indicator",1,2,3) - 入力パラメータ1,2,3の取得方法は?
こんにちは、現在のドローダウン率を調べる方法を教えていただけませんか?
資本を勘定に入れる
こんにちは、現在のドローダウン率を調べる方法を教えていただけませんか?
構造体やクラスにテンプレートを適用 して、その中にテンプレート型の変数を宣言し、後でその変数を操作したり参照したりすることは可能でしょうか? 構造体で試してみました。
コンパイルはできるが、構造体に名前をつけることができない。
市場のオープンポジション ごとに目標利益を出すことが必要ですが、トータルではなく、別々にすることです
例:EURUSDがオープンし、その設定に1ドルの目標利益を持ち、それに達するとすぐに、ポジションはそれだけでクローズされます
各通貨ペアは、合計の利益ではなく、それ自体で動くはずです
全ペアの利益合計のコードを見つけました。
各通貨ペアを別々にやり直すのを手伝ってください......どうもありがとうございました。
こんにちは!次のようなことをしたいのでよろしくお願いします。
相場のオープンポジション ごとに目標利益を出すことが必要ですが、トータルではなく、分けて考えることが必要です
例:EURUSDがオープンし、その設定に1ドルの利益目標があり、それに達するとすぐにポジションが勝手にクローズされる、ただそれだけです
各通貨ペアは、合計の利益ではなく、それ自体で動くはずです
全ペアの利益合計のコードを見つけました。
各通貨ペアを別々にやり直すのを手伝ってください......どうもありがとうございました。
この関数の最初のパラメータにペアの文字列を渡すと、そのペアの利益のみをカウントします。
この関数の第2パラメータに操作の種類(買いか売りか)を渡すと、その操作に対してのみ利益を計算します。
そして、マジックナンバーもそうなる。これは普遍的な機能です。