保証金の割合からロットを正しく計算すること - ページ 3

 
7bec:

しかし、確かにここではAccountFreeMarginではなく AccountBalance であるべきで、そうすると突然エキスパートが1ロットで動作しないのでは?

4歳の子供に質問する前に、よく考えたのか? 彼が答えてくれると本当に思っているのか?
 
zoritch:

4歳児に質問する前に、じっくり考えたか? 彼が答えてくれると本当に思っているか?
運が良ければ?
 
7bec:

しかし、確かにここではAccountFreeMarginではなく AccountBalance であるべきで、そうすると突然エキスパートが1ロットで動作しないのでは?

この機能、つまり2010年の夏に気に入ったここの機能全部を使っちゃダメなんです。より良い形で印刷できるから
 
wenay:

この機能、つまり2010年の夏に気に入ったここの機能全部を使っちゃダメなんです。もっといい印刷方法があるはずだから


一晩ネットで調べた中では、これが一番気に入った。

もちろん、どんなコードも無限に磨き上げることができますが、ベストはグッドの敵です ;)

 

MQL4プログラミングの専門家ではないので、何かヒントを探しているのですが・・・。

ロット計算のスクリプトを書くのに頭を悩ませている3日目です。 私のアイデアは次のとおりです:1000ドルの(条件付き)預金を持っていると、ロットは0.05(実際には20000で割ったもの)になります。

EURUSD、GBPUSD、AUDUSD、NZDUSDで作業する(=入金通貨で買う)時はいいんだけど・・・。USDJPY(またはUSDRUR)のロットの取り方がわからない... USDJPYのロットの取り方がわからない... 退屈なら、何が足りないんだ... 他にどこを探せばいいのか教えてください。

 
gochu:

MQL4プログラミングの専門家ではないので、何かヒントを探しているのですが・・・。

ロット計算のスクリプトを書くのに頭を悩ませている3日目です。 私のアイデアは次のとおりです:1000ドルの(条件付き)預金を持っていると、ロットは0.05(実際には20000で割ったもの)になります。

EURUSD、GBPUSD、AUDUSD、NZDUSDで作業する(=入金通貨で買う)時はいいんだけど・・・。私はCADJPY(またはUSDRUR)のロットを計算する方法は? 1000ポンドは113000円または38700ルーブルに(今日のために)変わり、それはその場合には5.65と0.19ロットになりません... 私はあまりにも一生懸命働いている、私は何を失っていますか? どこに行くべきかアドバイス... 後であなたの冗談とトロールを残してください!...


この問題を少し違った角度から見てみると、預金通貨 で一定額相当のロットを使用することです。

以下は、契約サイズに応じてロットサイズを計算するスクリプトです。契約サイズは、預入通貨で設定されます。

ファイル:
 

以下は、私が行った取引ロットの計算方法です(MQL4アップデート前のコードなので、#property strictはありません)。

extern double DealLevel = 5.0; // процент свободной маржи для сделки
//---
double LotDeal = NormalizeDouble(TradedLotFunc(DealLevel),2);

//--- TradedLotFunc() - start ----- сама функция
double TradedLotFunc(double Deal_f)
{  
   double MinLot_f  =MarketInfo(Symbol(),MODE_MINLOT);
   double MaxLot_f  =MarketInfo(Symbol(),MODE_MAXLOT);
   double LotStep_f =MarketInfo(Symbol(),MODE_LOTSTEP);
   double LotSize_f =MarketInfo(Symbol(),MODE_LOTSIZE);
   int    Leverage_f=AccountLeverage();
   //---
   int    i, coef; 
   double HighBorder;
   //---
   if(Deal_f<=0.0)  return(MinLot_f);
   if(Deal_f>100.0) Deal_f=100.0;
   double TradedLot=(AccountFreeMargin()*Deal_f/100)*Leverage_f/LotSize_f;
   if(TradedLot<=MinLot_f) return(MinLot_f);
   if(LotStep_f==0.001 || LotStep_f==0.01 || LotStep_f==0.1 || LotStep_f==1.0)
      TradedLot=MathRound(TradedLot/LotStep_f)*LotStep_f;
   else
   {  if(((TradedLot-MinLot_f)/LotStep_f)<=5.0) coef=1;
      else coef=MathRound((TradedLot-MinLot_f)/LotStep_f)-3;
      for(i=0; i<=100; i++)
      {  HighBorder=MinLot_f+(LotStep_f*coef)+(LotStep_f*i);
         if(TradedLot> HighBorder) continue;
         if(TradedLot==HighBorder) break;
         if(TradedLot< HighBorder)
         {  if(MathAbs(HighBorder-TradedLot)<=MathAbs(TradedLot-(HighBorder-LotStep_f)))
            {  TradedLot=HighBorder; break; }
            else
            {  TradedLot=HighBorder-LotStep_f;  break; }
   }  }  }
   if(TradedLot>=MaxLot_f) return(MaxLot_f);
   return(TradedLot);
}
//--- TradedLotFunc() - end -----
 

TradedLotFunc()は常に0以上の値を返しますか?

もしそうでなければ、コードはでたらめになるif(Deal_f<=0.0) return(MinLot_f); - あなたはパーティーのメンバーですか? ...と再びマシンガン射撃...。

あとは、もっと面白いif(TradedLot<=MinLot_f) return(MinLot_f) ; - パーティー野郎か? ...また機関銃が炸裂したぞ...

---------------------

一般に、この機能が正しく動作すると仮定すると、取引口座の最初で唯一の注文を出すのにかろうじて 十分である...。

既存の未決済ポジション や新規注文のストップロスを考慮しないので難しい、つまり小学生版だ

そして、常識のある人なら、実際の口座で取引するときに、この良さを使うことはないでしょう...。

 

ヒントをありがとうございます。しかし、私の質問の仕方が悪かったようです...。紛失・盗難の金額をベースに計算したい。もちろん、euro.quidとpound.quidの担保は異なりますが、私がたどり着きたいのは、そういうことではありません。理想的には、パラメータを入力とする関数が必要です。

1-預け入れ通貨(クオードとユーロを確認する)。

2 - 預け入れ金額(1000)

3 - 私の取引通貨ペア(CADJPYとUSDCHFを確認したいです。)

4 - 自分の預金のドローダウン率(仮に2%とする)、および

5- 一定ポイント(4桁のプラットフォームでは100ピップ、5桁のプラットフォームでは1000ピップ)。

出力パラメータ ロットサイズを取得したい。

つまり、(逆クォートのあるペア、EURUSD、GBPUSD、AUDUSD、NZDUSD、つまり、クォート通貨が入金通貨であればすべてクリア)...です。には

1000クォードの預金で、通貨が100(4桁)/1000ピップ(5桁)を通過するとき、私は2%(すなわち20クォード)失う/勝つ、私は0.02ロットを使用しなければならない。

(私はEURUSD、または特にNZDUSDのためによりもGBPUSDの取引のために多くのお金を使用する必要があることを繰り返したい、しかし、私の質問はお金の使用についてではなく、名目損失および/または利益についてです...私に助言してください...私は頭を失っている...私はこの問題と働いて一週間未満であった)。私は通貨の引用符で損失の値を計算しなければならなかったポイントになった...しかし、どのように望ましい私にそれを(損失)預金通貨の多くを変換する...すべてのここで私はつまずく...ありがとうございました。

 
gochu:

ありがとう、ヒントをありがとう、でも私の質問の仕方が悪かったみたい...。紛失・盗難の金額からロットを計算したいのですが ...

クエリ識別子MODE_TICKVALUE を持つ関数https://docs.mql4.com/ru/marketinformation/marketinfo を見てみましょう。