MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1559

 
Tsaryoff5614:

プログラマーの皆さん、こんにちは!!!

初心者のために、機能を教えてください。

履歴別に利益の合計をカウントする機能です。

問題は、あるブローカーには通用するが、別のブローカーには通用したくないということだ。

Hercicでは動きますが、RoboForexでは動きません。RoboForexでECN口座を持っています。

何が問題なのかわからない。以下はそのコードです。

double lastloss()

{

int typ = -1,cnt = 0;

double lastloss = 0;

for(int i = OrdersHistoryTotal()-1; i>=0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if(cnt == 0) typ = OrderType();

if(cnt > 0 && OrderType()!= typ) break;

lastlos += OrderProfit() + + OrderSwap() + OrderCommission();

cnt++です。

}

}

}

return(lastlos);

}

コンパイラはこの行で悪態をつかないのだろうか?

lastlos += OrderProfit() + + OrderSwap() + OrderCommission();

もしかしたら、正しく動作させるためには、1つの+を削除する必要があるのでは?

また、なぜスワップや手数料を利益に上乗せしているのですか?たとえ、
OrderProfit()

ネガティブにもなりかねない...。

また、1つまたは数個のマッチングオーダーを処理するだけで、すべてのオーダーを処理しない場合、トータルでどのような利益が出るのでしょうか?

次のページ

 if(cnt > 0 && OrderType()!= typ) break;

サイクルストップ

 
MakarFX:

1)高速で、またはテスターのティックにない場合、最初の利用可能な価格でクローズします。

2)ロットアップが進んでいて、大きなロットでは1ポイントが許容範囲を超えている可能性がある。

3)あなたが何をしたいのか理解できません。すべてのトレードの後にゼロにする場合、何を追跡する必要がありますか?

3)毎回のトレード後にゼロにする場合、何をトラッキングしたいのか理解できないのですが?

つまり、価格がストップとテイクの間を「ウロウロ」している間に、現在のトレードによる利益と損失の額も変化するという、各トレードの「内側」の利益と損失を追跡するという話です。このような場合、価格がプロフィット・ゾーンに来てもテイクポイントに到達せず、一転してストップで取引を終了することがよくあります。ストップとテイクをずらすことなく、つまりテイクとストップの設定パラメーターを壊すことなく、タイムリーに修正するために、利益と損失のトレースが必要です(お金で)。これは、マーティンが有効な大規模な土地に関連するものです。

取引が終了すると、トラッキングは停止し、新しい取引のためにやり直されます。

 
законопослушный гражданин:

3)毎回のトレード後にゼロにする場合、何をトラッキングしたいのか理解できないのですが?

つまり、価格がストップとテイクの間で「迷っている」間に、現在のトレードの利益額と損失額が変化するということです。このような場合、価格がプロフィット・ゾーンに来てもテイクポイントに到達せず、一転してストップで取引を終了することがよくあります。ストップとテイクをずらすことなく、つまりテイクとストップの設定パラメーターを壊すことなく、タイムリーに修正するために、利益と損失のトレースが必要です(お金で)。これは、マーティンが有効な大規模な土地に関連するものです。

取引が終了すると、トラッキングは停止し、新しい取引のためにやり直されます。

利益と損失からストップロスとテイクプロフィットを除いたパラメータを指定するだけでよいのです。

TakeProfitが200pips 0.1lotの場合、利益は$20、利益水準を$15に設定すると、取引は早めに終了します。

 
Mihail Matkovskij:

あと、なんで利益に手数料でスワップ付けてるんだ?With
OrderProfit()

はマイナスにもなるし...。

ありがとうございます。私もこんなバカなことをして いました。

 
MakarFX:

必要なのは、利益と損失のパラメータからストップロスとテイクプロフィットを差し引いたもの、すなわち、利益と損失のパラメータを指定することだけです。

TakeProfitが200pips 0.1lotの場合、利益は$20、利益水準を$15に設定すると、取引は早めに終了します。


OK、ありがとうございます。考えてテスターで動かしてみます。

 
注文 履歴から利益を計算する機能へのリンクはありますか?
 

地域の皆様のお力をお借りしたいのですが...。
MQL5グローバルオブジェクトを正しく宣言し、作成する方法は?

このようにすれば

int OnInit()
{
   CIsNewBar* NB_M1=new CIsNewBar(_Symbol,PERIOD_M1);  // Эта строка потом будет в цикле для разных символов
}

void OnTick()
{
    if (NB_M1.IsNewBar())  // (1) Если появился новый бар M1
        {....}
    ......
}

OnTick()の行でコンパイラが文句を言います: 'NB_M1' - 未宣言の識別子。

OnInit()の前にグローバル宣言を挿入した場合。

CIsNewBar* NB_M1;

を実行すると、エラーなくコンパイルされ、エキスパートが動作するようになります。グローバル宣言時とOnInit()時の2回、オブジェクトが生成されているようです。
しかし、コンパイラは このような警告を 出します。

NB_M1' の宣言でグローバル変数を隠す → OnInit()の1行につき、です。

see previous declaration of 'NB_M1'

OnInit()でローカル変数(関数内)を作成し、同名のグローバル変数を隠蔽するということでしょうか。
また、その場合、このローカル変数を別の関数 OnTick() でどのように「見る」ことができるのでしょうか?


 
MakarFX:

ありがとうございます。私もそんなバカなことをやってしまいました。

マカー、あなたは以前は正しいことをやっていたのに、今は愚かなことをやりたがっている......。

小学校5年生くらいの算数を思い出してみてください。(-3)-(-7)はいくらで、(-3)+(-7)はいくらなのか?

電卓で確認するのは難しいので、Excellで対応します。


 
Mihail Matkovskij:
こんにちは。MQLでデータ構造を ファイルに書き出し、後からロードするために利用できるライブラリをご存知ですか?jsonフォーマット、json パーサなどを扱うライブラリが理想的です。

ドキュメントを読めと言われても、どうしたらいいのかわからない。それを読んで、何らかの理由で標準機能が適さないのであれば、素直にそう言えばいいのに・・・。

 
Alexey Viktorov:

マカー、あなたは以前は正しいことをやっていたのに、今は愚かなことをやりたがっている......。

小学校5年生くらいの算数を思い出してみてください。(-3)-(-7)はいくらで、(-3)+(-7)はいくらなのか?

電卓で確認するのは難しいので、Excellで対応します。


はい、ありがとうございます。結論に飛びつきました。ちゃんとした)