どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 84

 
paladin80:

赤字になったパスは表示されていません。最適化結果を右クリックし、「無駄な結果をスキップする」のチェックを外す。




最適化ではないのです。

テストは一回限りです。

と、異なるタブでの結果は、上に示したように30も違うのです。

 
lottamer:


最適化ではないのです。

テストは一回限りです。

で、その結果は、上に示したように、タブによって30も違うのです。

問題個所が書かれたレポートのスクリーンショットを投げ入れて、見てみましょう。または、レポート全文をアップロードしてください。
 

親愛なるプログラマは、この点を説明し、ここでお金の管理のための多くを計算するアルゴリズムですが、問題は、一度彼は0.01未満すなわち許容ロットを開くために、次に自然に従うことを理解することです 送信エラーとさようなら、アルゴリズムはそう必要とさえすれば0.01未満を開くために何を入力するように助言することができないロットです。

double GetSizeLot()
{  
  if (MM==false) 
      MMLot=Lots;
      
  if (MM==true)
     {
      MMLot=((AccountFreeMargin()*TradeLotRiskPercent)/100000);
     }
  return(MMLot);
}
 
ZahvatkiN:

親愛なるプログラマは、この点を説明し、ここでお金の管理のための多くを計算するアルゴリズムですが、問題は、一度彼は0.01未満すなわち許容ロットを開くために、次に自然に従うことを理解していることです 送信エラーとさようなら、アルゴリズムはそれを必要とする場合でも、することはできません0.01未満ロットを開くために入力するものを助言する。

1.正常化することが必要である。

2.そして、最低ロットを確定する。

MMLot=NormalizeDouble(MathMax((AccountFreeMargin()*TradeLotRiskPercent)/100000,MinLot),2);
 
ZahvatkiN:

親愛なるプログラマは、この点を説明し、ここでお金の管理のための多くを計算するアルゴリズムですが、問題は、彼は0.01未満すなわち許容ロットを開くために、その後もちろん、次のことを実現するとすぐに順序はエラーとさよならを送信、私に何を入力するアルゴリズムがそれを必要とさえ0.01未満ロットは開くことができませんを教えてください。

double GetSizeLot(double TradeLotRiskPercent)
{  
   double MMLot, MinLot, MaxLot;
   //---
   MinLot=MarketInfo(Symbol(),MODE_MINLOT);
   MaxLot=MarketInfo(Symbol(),MODE_MAXLOT);
   //---
   MMLot=AccountFreeMargin()*TradeLotRiskPercent)/100000;
   if (MMLot<=MinLot) return(MinLot);
   if (MMLot>=MaxLot) return(MaxLot);
   else 
   {  MMLot=NormalizeDouble(MMLot,2);
      return(MMLot);
   }
}

MMLotを100000で割った計算式がありますね。ほとんどの場合、レバレッジ1:100で、ロットサイズが基準通貨(例:米ドル)の 100000である通常の口座で計算されていると思います。このようなEAをCent account (lot = 10000) や異なるレバレッジで投入すると、ロットが正しくカウントされないことがあります。このデザインを試してみてください。

double GetSizeLot(double TradeLotRiskPercent)
{  
   double MMLot, MinLot, MaxLot;
   int    LotSize, Leverage;
   //---
   MinLot  =MarketInfo(Symbol(),MODE_MINLOT);
   MaxLot  =MarketInfo(Symbol(),MODE_MAXLOT);
   LotSize =MarketInfo(Symbol(),MODE_LOTSIZE);
   Leverage=AccountLeverage();
   //---
   MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100*Leverage/LotSize;
   if (MMLot<=MinLot) return(MinLot);
   if (MMLot>=MaxLot) return(MaxLot);
   else 
   {  MMLot=NormalizeDouble(MMLot,2);
      return(MMLot);
   }
}
 
Alpari_ECN_Live口座をレバレッジ1:500で使用し、TradeLotRiskPercent=10、すなわち1000ドルの預金の10%とすると、ロットは0.5から動き始めます。この式はレバレッジ1:100の場合のみですねどんなレバレッジやアカウントにも共通するコードはないのでは?
 
ZahvatkiN:
Alpari_ECN_Live口座をレバレッジ1:500で使用し、TradeLotRiskPercent=10、すなわち1000ドルの預金の10%とすると、ロットは0.5から動き始めます。この式はレバレッジ1:100の場合だけなのですねどんなレバレッジやアカウントにも共通する コードはないのでは?
私の2式(2013.08.23 07:30~)では、正しくロットが計算されていると思います。1000ドルの10%=100ドル(預金)を見て、1:500のレバレッジで、ブローカーはあなたに50,000ドルの取引を開く機会を提供する。ブローカーでの1ロットは10万円、ではあなたの5万円は0.5ロットです。
MMLot=AccountFreeMargin()*TradeLotRiskPercent)/100*Leverage/LotSizeです。
MMLot=1000*10/100 * 500/100000 = 100 * 500/100000 = 50000 / 100000 = 0.50
 
paladin80:
私の2式(2013.08.23 07:30付け)では、ロットが正しく計算されていると思います。1000ドルの10%=100ドル(保証金)を参照し、1:500のレバレッジで、ブローカーはあなたに5万ドルの取引を開くためのオプションを提供します。ブローカーでの1ロットは10万円、そうするとあなたの5万円は0.5ロットです。
MMLot=Account FreeMargin()*TradeLotRiskPercent)/ 100*Leverage/LotSize
MMLot=1000*10/100 * 500/100000 = 100 * 500/100000 = 50000 / 100000 = 0.50

式自体はエラーなしで計算され、唯一の1000の10%の考え方でロット0.1ではなく、0.5です)ここでは、なぜ0.5ので1時500分のレバレッジは、それは肩1時100それは多くのちょうど0.1ので質問が発生し、開くだろうが、任意のレバレッジとアカウントの種類、またはそれぞれ独自のためにロットを計算するための普遍的なアルゴリズムです明らかであるかどうか?
 

フォーラムユーザーの皆様、矢印の座標を見つけるのを手伝ってください。

string arrowName=TimeToStr(Time[i])。

ObjectCreate(arrowName+ " Arrow",...);

インジケータをベースにExpert Advisorを作っていて、iCustom経由で矢印を取得しているのですが、複数の最新の矢印の座標を見つける方法が分かりません。

 
nazar77:
インジケーターの逆コンパイルに協力してください。 私より先に逆コンパイルはしません、保証 します。
地獄に落ちろ!!!