[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 149

 

初心者にアドバイスお願いします。AccountBalance() - 残高の資金量を表示しますが、計算残高(calc_balance)を計算したいのですが、どうしたらよいでしょうか?

このバランスは単純ですが、まだ書けません、未決済と保留の注文の 合計量(Orderstotal)があり、例えば3つの注文、1つのオープンポジションあたりの最大リスクは2%です。

別の取引を開始するために、計算された残高の最大リスク(2%)を計算する必要があります。つまり、式のロジックはおおよそ次のようになります。

つまり、一貫した引き算です。しかし、それをコードで書く方法はまだ成功していませんので、あなたの助けを願っています。

よろしくお願いします!

 
買いポジションと売りポジションで資金(AccountEquity())と担保(AccountMargin())が別々になっているのですが、どのように分けているのか教えてください。
 
T-G:
買いポジションと売りポジションで資金(AccountEquity())と担保(AccountMargin())が別々になっているのですが、どのように分けているのか教えてください。
AccountEquity()は自分のアカウントに対してのみ、AccountMargin()は自分の条件に対してのみ可能です!キムさんのとても「便利な関数」を見てください。
 
皆さん、どなたかD1でサポートと レジスタンスのレベルを表示するインジケーターかエキスパートアドバイザーをアドバイスしていただけませんか?)
 
Top2n:
皆さん、どなたかD1でサポートとレジスタンスのレベルを表示するインジケーターやエキスパートアドバイザーをアドバイスしていただけませんか?)
検索条件:DailyPivotPoints
 

皆さんこんにちは。私はある問題を抱えていて、それが何であるかが分かりません。


与えられた機能は2つ。1に電話しても、何も動かない。2つ目のケースは、すべてがうまくいく。どのようなエラーなのか、教えてください。

ありがとうございました。

int OrderBuy(double pLots, string pComment, int pMagic, int pDatetime, color pColor)
{
   int ticket = 0;
   int err = 0;
   int c = 0;
   int NumberOfTries = 100;
   for (c = 0; c < NumberOfTries; c++) 
     {
         RefreshRates();
         ticket = OrderSend(Symbol(), OP_BUY, pLots, Ask, 0, Ask-0.0005, Ask+0.0005, pComment, pMagic, pDatetime, pColor);
         err = GetLastError();
         if (err == 0/* NO_ERROR */) break;
         if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
         Sleep(5000);
      }
      return(ticket);

}


int OrderSell(double pLots, string pComment, int pMagic, int pDatetime, color pColor)
{
   int ticket = 0;
   int err = 0;
   int c = 0;
   int NumberOfTries = 100;
   
   for (c = 0; c < NumberOfTries; c++) 
   {
         RefreshRates();
         ticket = OrderSend(Symbol(), OP_SELL, pLots, Bid, 0, Bid+0.0005, Bid-0.0005, pComment, pMagic, pDatetime, pColor);
         err = GetLastError();
         if (err == 0/* NO_ERROR */) break;
         if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
         Sleep(5000);
    }
    return(ticket);

}





//вызовы функций

ticket = OrderBuy(lot, "---"+count+" ---", MagicNumber, 0, HotPink);
         Print(ticket+":тикет");//здесь выдает -1
         if (ticket < 0) 
               {
                  Print("Error: ", GetLastError());//здесь выдает "0";
                  return (0);
               } 




ticket = OrderSell(lot, "---"+count+" ---", MagicNumber, 0, HotPink);
         Print(ticket+":тикет");
         if (ticket < 0) 
               {
                  Print("Error: ", GetLastError());
                  return (0);
               } 
 
端末の計算内に収めたい場合は、手持ちのものから、適切な注文を出した場合に残るものを引くのが一番簡単な方法です。
double ld_MarginPosition = AccountFreeMargin() - AccountFreeMarginCheck();
 
arabon:

皆さんこんにちは。私はある問題を抱えていて、それが何であるかが分かりません。


与えられた機能は2つ。1に電話しても、何も動かない。2つ目のケースは、すべてがうまくいく。どのようなエラーなのか、教えてください。

ありがとうございました。


関数 GetLastError() は、OrderSell と OrderBuy のループの中で、エラーの値をリセットする(GetLastError ATTENTION のヘルプを参照)ため

Print("Error: ", GetLastError());

ループの中で直接プリントアウトしてみてください。そうすれば、エラーで注文が開けないところがわかります。

 

楽器を「反転」させる簡単なインジケータを作りました。知覚のためには、ペアを逆に見たほうがわかりやすい場合もあり、同じ絵を見ていると目が「洗われる」のです。ファイルから読み込んだことはない(ファイルを扱うこともしたことがない)、本格的なチャートは表示できる、どなたかお心当たりはありませんか?


ファイル:
converter.mq4  2 kb
 

検索しても、キムの機能の中にも、まだ見つかっていません。

未決済注文の証拠金を個別に正しく計算する方法は?

以前はこんな風にやっていました。

в цикле
if (OrderType() == OP_BUY ) {  
   MarginBuy += (OrderOpenPrice()*OrderLots()/AccountLeverage())*MarketInfo(Symbol(), MODE_LOTSIZE);
}
         
if (OrderType() == OP_SELL ) {  
   MarginSell += (OrderOpenPrice()*OrderLots()/AccountLeverage())*MarketInfo(Symbol(), MODE_LOTSIZE);
}

ターミナルが示す値とは異なる値が表示された

ターミナルの計算に合わせたい場合、一番簡単な方法は、持っているものから、対応する注文を開いた場合に残るものを引くことです。
double ld_MarginPosition = AccountFreeMargin() - AccountFreeMarginCheck();


引き算だけではだめだ、方向別に計算が必要だ。