The next version of the Easy And Fast library (version 3) is presented in this article. Fixed certain flaws and added new features. More details further in the article.
for ( int i = OrdersTotal() - 1; i >= 0; i-- ) { if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue; if ( closeothers != true && OrderSymbol() != Symbol() ) continue;
マーケットクローズ!
#1- OnTick()、Start()でButtonオブジェクトを 呼び出したことはありませんが、正常ですか?
# 2 - ボタンオブジェクト 'ANCHOR_RIGHT_UPPER' に適用することは可能ですか?
#3 - それで、私はまだ私のこの懸念事項#145の ための助けを必要とする、お願いします。
ありがとうございます。
#1 - I never call Button Object by OnTick(), Start(), so is it normal?
はい
#2- ボタンオブジェクト 'ANCHOR_RIGHT_UPPER' に適用することは可能ですか?
いいえ、アンカーポイントはANCHOR_LEFT_UPPERに固定されています。
#3 - それで、私はまだ私のこの懸念#145の ための助けを必要とする、お願いします。
はい、あなたは正しいです - EventSetMillisecondTimer(250)
はい
いいえ、アンカーポイントは ANCHOR_LEFT_UPPER に固定されています。
はい、あなたは正しいです - EventSetMillisecondTimer(250)
#Profit Orders Counting - Open
利益の出るポジションをすべて1つの値で計算しようとしただけなのですが。
それは私に別々の値を与える。
私は本当に私の心を失った。私はいくつかの方法を試してみて、それについて多くの研究をしたが、良い結果はない。
どうか私を助けてください、もしそれが可能なら、利益計算について もう少し説明してください、とても感謝しています。
早く良い答えが得られるといいのですが。
{
double trueprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers == false && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
Print( "Profit: ", trueprofit );
ObjectSetString ( 0, "all profit counting object", OBJPROP_TEXT, DoubleToString( trueprofit, 2 ) );
}
}
//---
return;
}
ありがとうございました。
ループの各反復で、値を追加するのではなく、trueprofitの値を上書きしています。
これを覚えておいてください。
がこれに変更されました。
ループの各反復(各注文)で起こりたいことと、ループの後(すべての注文をチェックした後)で起こりたいことの間に明確である必要があります。
早速のご回答ありがとうございます。
疲れているのかもしれません、すみません。(ただ、どうすれば いいのかがわからないのです。)
私はもう少し私の懸念を説明する必要があります(私はどこまでできるか)。
それで、私は2つの関数を持っています。
最後に、私はこの ( 私の最新のコメントコード) 利益計算関数は、両方のタイプの注文" OP_SELLとOP_BUY " ちょうど有益な計算することができますしたいと思います。
事前にありがとうございます。
すべての利益値を1つのラベルに表示するにはどうすればよいのでしょうか?
AcountProfit() をすべて足したものなのか、それとも個別の OrderProfit() のためのものなのか。
もし、このようなものが必要であれば
この記事を参照してください。
https://www.mql5.com/en/articles/2723
コメントありがとうございます。
混乱させてしまい申し訳ありません。
いいえ、私はそれとは少し異なる必要があると思います。
私は私の問題を明確にするためにしようとします。
私はEURUSDの3つのポジションを持っています。そのうち2つは利益の出るポジションで、1つは損失の出るポジションです。そこで、そのうちの2つのポジションを計算する必要があります。
例:それぞれ+1.00(2つの利益ポジション=+2.00)であれば、私はすべての利益ポジションの値を取得する必要があるだけです。
私はちょうど私が言おうとしていることを助けるために、以下のタブを簡単に作りました。( このコメントの下にある画像ファイル )
( 英語は私の母国語ではない - 時々私はそれに苦労している )
すべて最高です。
// in your orderselect loop put
if(OrderProfit()>0)
{
totalprofit=totalprofit+OrderProfit();
}
#Profit Orders Counting - Closed
{
totalprofit=totalprofit+OrderProfit();
}
あなたの素晴らしいサンプルコードで、私の問題は解決しました。
ありがとうございました。
ループの各反復で、trueprofit の値を追加するのではなく、上書きしています。
ループの各反復で起こりたいこと(各注文)とループの後で起こりたいこと(すべての注文をチェックした後)の間を明確にする必要があります。
ちょうど下のコードスクリプトを終えた後。
もう一度、私はあなたのコメントを確認 し、私はあなたがそれを私に説明していることを知っている。しかし、私の英語はそれを理解するために防ぐことができます。
皆さん、よろしくお願いします。
{
double trueprofit = 0;
double totalprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers != true && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
totalprofit += OrderProfit() + OrderSwap() + OrderCommission();
Print( "Profit: ", DoubleToString( totalprofit, 2 ) );
ObjectSetString ( 0, _Checkthisout_name_Label, OBJPROP_TEXT, "Total Profit: " + DoubleToString( totalprofit, 2 ) );
}
}
//---
return;
}
このコードスクリプトがうまく動作することを願っています。もし、このコードに何か問題があれば、私に知らせてください。
ありがとうございました。