[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 547

 

Alp:

くだらない質問で申し訳ないのですが、やはり。

私には理解できない。チャートが顕著に跳ね上がるように、EURUSDを100万ドルなど任意の金額で買う(=買い取引をする)とします。

そして、問題は、そのような取引の後、どこに行くのか、つまり、上がるのか下がるのか(私の取引から一挙に跳ね上がる)。上がると思います。私の考えは正しいのでしょうか?

ディムカノビッチェク

はい、そのように考えています。なぜなら、eurを買ったとして、その一部がロッカーに残っているため、市場に出回る量が少なくなってしまうからです。ということは、その分市場価格が上がるということです

そうすると、さらに不明確になってきます。私は1 000 000(1kk)ドルでEURを買うとしましょう(ブローカーは、取引が100kのために行くように100でこれを乗算)チャートは100ポイントを上向きにジャンプし、すぐにそれらを販売し、私は10 000ドルのためにプラス側にあるよくそこに手数料ブローカーと私のポケットに結果6000ドルネットとして広がっています。(まあ、売った後、また100ポイント下がるのは明らかだが)こんなのナンセンスだ!!!!やっぱり底辺に落ちるかも?そうでなければ、非常に大きなプレーヤーが、本質的に何もせずに何十億も稼いでしまうでしょう。

 
Roman.:

みんな、この質問についてアドバイスしてくれないか?

crenfxのジグザグバックラッシュの最大サイズを求めるスクリプトはこちらです。

M5で計測器のチャートに投げる - デフォルトのタイムフレームで問題なく動作します。

は,アルパリオフィスでF2で読み込んだときのシンボルの履歴の最大深さです-確認したところ,つまりクライアント端末の「エキスパート」タブの内容のようです-本当だったようです.

私のEAで同じスクリプトデザインを同じM5チャート期間の同じ時間間隔に使用すると、正しくカウントされません。

を計算すると、全く異なる(スクリプトより小さい)数値や0が計算されます。何がエラーなのか、あるいは何らかの履歴の不整合なのでしょうか。ありがとうございます。

例えば、フェイルセーフを見つけるための推定時間の後にowlでテスターを開始した場合、理論上はすべて正常で、スクリプトとowlの最後の数字は同じになるはずですが...。何がエラーになるのでしょうか?


テスターのバーの本数を確認する。スタート時には1000であるべきで、もちろんそれが存在する場合
 
Vinin:

テスターのバーの本数を確認する。もちろん、それが存在する場合は、開始時に1000になるはずです。

これはどのように確認するのですか?
 
Print("Bars=", Bars);
 
Vinin:
Print("Bars=", Bars);

了解です、ありがとうございます。確認させていただきます。
 
皆さん、オープンポジションを ブレイクイーブンに移動させる関数の例を教えてください(ティックでの作業)、私のExpert Advisorにはトロールがあり、このトロールの開始は買いへのロールオーバーの機能の後だけです。今回は、そんなEAの例として、この記事を紹介したいと思います。
 

このコードで、外部変数Lots111の値が増え続け、未知数と掛け合わされ、4354354664450000000000となるのはなぜか教えてください。

変数Lots111は、このコードの断片以外では使用されていません。Lots111は0.01に等しく、変数dcouは2-3に等しい。正確には、新しいバーが 増えるごとに増えていくのですが、なぜなのか理解できません。他のどこにも使われていない外部変数が値を保持し、すべてのバーで増加し、ほとんどの場合2倍されるのはどうしてでしょうか。

double fGetLots(int a_cmd_0) {
   int dcou;
   dcou = AccountBalance()/2000;
   Lots111 = Lots111*dcou;
   int i11;
   int orders;
   
   for(i11=0;i11<OrdersTotal();i11++)
     {
     if(OrderSelect(i11,SELECT_BY_POS,MODE_TRADES) == true)
       {
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
         orders++;
         }
       }
     }
   static double Lots2;
   
   if(orders == 0)
     {
     Lots2 = Lots111;
     }
   Comment(Lots111,"\n",Lots2,"\n",orders,"\n",dcou);
   double l_lots_4;
   int l_datetime_12;
   switch (gi_256) {
   case 0:
      l_lots_4 = Lots2;
      break;
   case 1:
      l_lots_4 = NormalizeDouble(Lots2 * MathPow(MultiLotsFactor, gi_360), gd_240);
      break;
   case 2:
      l_datetime_12 = 0;
      l_lots_4 = Lots2;
      for (int l_pos_20 = OrdersHistoryTotal() - 1; l_pos_20 >= 0; l_pos_20--) {
         if (OrderSelect(l_pos_20, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
               if (l_datetime_12 < OrderCloseTime()) {
                  l_datetime_12 = OrderCloseTime();
                  if (OrderProfit() < 0.0) l_lots_4 = NormalizeDouble(OrderLots() * MultiLotsFactor, gd_240);
                  else l_lots_4 = Lots2;
               }
            }
         } else return (-3);
      }
   }
   if (AccountFreeMarginCheck(Symbol(), a_cmd_0, l_lots_4) <= 0.0) return (-1);
   if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);
   return (l_lots_4);
}
 
sss2019:

このコードで、外部変数Lots111の値が増え続け、未知数と掛け合わされ、4354354664450000000000となるのはなぜか教えてください。

変数Lots111は、このコードの断片以外では使用されていません。Lots111は0.01に等しく、可変dcouは2-3に等しいです。

時々、変数を初期化してみてください。助かることもあります。特に、デフォルトで使用されている場合は。つまり、値が正確に定義されておらず、それらを掛け合わせ、割り算しているのです。また、同じようにゼロによる除算も 獲得できます
 
Vinin:
時々、変数を初期化してみてください。助かることもあります。特に、デフォルトで使用されている場合は。つまり、値が正確に定義されておらず、それらを掛け合わせ、割り算しているのです。また、同じようにゼロによる除算も獲得できます


もう少し詳しく説明してください。まあ、私はそれを得たと思う、私はすべての変数を元の値に設定したが、問題は持続する。
 
sss2019:

するものですが、もう少し詳しく説明してください。私はそれを得たと思う、私はすべての変数を元の値に設定したが、問題は持続する。

どこかのEAからコードをパクった(前にハックした)けど、それは重要じゃない(少なくとも理解しようとした)んだろ。でも、それをベースに自分で作れば、簡単にナビゲートできたはずです。そうすれば、何の問題もなかったでしょうに。頭を使って仕事をする。