恋愛の質問
Results 1 to 6 of 6

Thread: 恋愛の質問

  1. #1
    誰かがこのEAがどのように私がmt4の言語で非常によく理解している各取引原因のロットサイズを計算するかを私に説明することができますか?

    //|最適ロットサイズの計算|
    // ----------------------------------------------- -------------------
    double LotsOptimized()
    {
    ダブルロット=ロット;
    int orders = HistoryTotal();/履歴オーダー合計
    int loss = 0;/休憩なしの損失注文数
    //----ロットサイズを選択する
    lot = NormalizeDouble(AccountFreeMargin()* MaximumRisk1000.0,1);
    //----破損せずに損失注文の数を計算する
    if(DecreaseFactorlt; 0)
    {
    for(int i = orders-1; igt; = 0; i--)
    {
    if(OrderSelect(i、SELECT_BY_POS、MODE_HISTORY)== false){Print(エラー履歴)!ブレーク; }
    if(OrderSymbol()!= Symbol()|| OrderType()gt; OP_SELL)continue;
    //----
    if(OrderProfit()gt; 0)break;
    if(OrderProfit()lt; 0)の損失 ;
    }
    if(lossesgt; 1)lot = NormalizeDouble(lot-lot * lossesDecreaseFactor、1);
    }
    //----返品ロットサイズ
    if(lotlt; 0.01)lot = 0.01;
    リターン(ロット);

  2. #2
    この行から:double lot = Lots; ... if(lossesgt; 1)lot = NormalizeDouble(lot-lot * lossesDecreaseFactor、1);最初に、Lotsという名前の最初のロットサイズがあります(コードの先頭にあるextern変数を見てください)、Lots = 0.2としましょう。あなたの連続損失が2(損失より大きい場合)の場合にはDecreaseFactor = 5となり、ロットサイズ= 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 1小数点= gt; NormalizeDouble(...、1)0.12 = gt; 0.1この助けを願って

  3. #3
    私は今理解していただきありがとうございます!!!!
    Quote Originally Posted by ;
    この行から:double lot = Lots; ... if(lossesgt; 1)lot = NormalizeDouble(lot-lot * lossesDecreaseFactor、1);最初に、Lotsという名前の最初のロットサイズがあります(コードの先頭にあるextern変数を見てください)、Lots = 0.2としましょう。あなたの連続損失が2(損失より大きい場合)の場合にはDecreaseFactor = 5となり、ロットサイズ= 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 1小数点= gt; NormalizeDouble(...、1)0.12 = gt; 0.1この助けを願って
    Quote Originally Posted by ;
    この行から:double lot = Lots; ... if(lossesgt; 1)lot = NormalizeDouble(lot-lot * lossesDecreaseFactor、1);最初に、Lotsという名前の最初のロットサイズがあります(コードの先頭にあるextern変数を見てください)、Lots = 0.2としましょう。あなたの連続損失が2(損失より大きい場合)の場合にはDecreaseFactor = 5となり、ロットサイズ= 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 1小数点= gt; NormalizeDouble(...、1)0.12 = gt; 0.1この助けを願って

  4. #4
    私には分からないことがあります。アカウントのフリーマージンが3000、最大リスクが.01の場合、ロットサイズは3000 * .011000 = .03である必要がありますが、EAのロットサイズは.01です。アカウントが5000に成長するとEAは.1のロットを開くことはほとんどありませんが、この時点で5000 * .011000 = .05のロットを開くはずです。/|最適ロットサイズの計算|/ ----------------------------------------------- ------------------- double LotsOptimized(){ダブルロット=ロット; int orders = HistoryTotal();/履歴オーダーの合計損失額= 0;/休憩なしの損失注文数//---- select lot size lot = NormalizeDouble(AccountFreeMarg in()* MaximumRisk1000.0,1);もし、(OrderSelect(i、SELECT_BY_POS、MODE _HISTORY)) - ( - )----- ---- - )== false){印刷(履歴のエラー!);ブレーク; } if(OrderSymbol()!= Symbol()|| OrderType()gt; OP_SELL)continue;/---- if(OrderProfit()gt; 0)break; if(OrderProfit()lt; 0)の損失 ; }(lossgt; 1)lot = NormalizeDouble(lot-lot * lossDecreaseFactor、1); }/----ロットサイズを返すif(lotlt; 0.01)lot = 0.01;リターン(ロット);
    https://www.forexgroove.com/trading-...g-journal.html

  5. #5
    私はまだEaが適切なロットサイズを開けない理由を理解できない。 Cqn womeoneは、1がコード内で何を表しているかを教えてくれます.... lot = NormalizeDouble(AccountFreeMarg in()* MaximumRisk1000.0,1);
    Quote Originally Posted by ;
    私には分からないことがあります。アカウントのフリーマージンが3000、最大リスクが.01の場合、ロットサイズは3000 * .011000 = .03である必要がありますが、EAのロットサイズは.01です。アカウントが5000に成長するとEAは.1のロットを開くことはほとんどありませんが、この時点で5000 * .011000 = .05のロットを開くはずです。/|最適ロットサイズの計算|/ ----------------------------------------------- ------------------- double LotsOptimized(){ダブルロット=ロット; int orders = HistoryTotal();/履歴オーダーの合計損失額= 0;/...
    Quote Originally Posted by ;
    私には分からないことがあります。アカウントのフリーマージンが3000、最大リスクが.01の場合、ロットサイズは3000 * .011000 = .03である必要がありますが、EAのロットサイズは.01です。アカウントが5000に成長するとEAは.1のロットを開くことはほとんどありませんが、この時点で5000 * .011000 = .05のロットを開くはずです。/|最適ロットサイズの計算|/ ----------------------------------------------- ------------------- double LotsOptimized(){ダブルロット=ロット; int orders = HistoryTotal();/履歴オーダーの合計損失額= 0;/...

  6. #6
    こんにちは、私の最後の返事に間違った論理があるようです。関数は最初にロット変数からではなく、ロット= NormalizeDouble(AccountFreeMarg()* MaximumRisk1000.0,1)からロットサイズを計算しました。まず、NormalizeDouble(..、1)について、1桁の精度で値を返します。たとえば、var1 = 5/8 = 0.625となります。 NormalizeDouble(var1,2)= 0.63 gt;小数点以下2桁NormalizeDouble(var1,1)= 0.6 gt; gt; gt;小数点以下1桁をAccountFreeMargin = 3000 MaximumRisk = 0.01 AccountFreeMargin * MaximumRisk1000 = 3000 * 0.011000 = 0.03 lot = NormalizeDouble(0.03,1)= 0.0 !!! 3は小数点の後の左から数えてから、結果を返す前の2番目の位置にあるので、省略されます://---- return lot size if(lotlt; 0.01)lot = 0.01;リターン(ロット);その結果、計算されたロットの結果が0よりも小さく、0.01よりも小さいため、この関数は0.01を返しました。最後に、(DecreaseFactorlt; 0)の代わりにif(DecreaseFactorgt; 0)を使用し、DecreaseFactorの値が正の値(たとえば3)であることを確認してください。

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.