[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 149

 

초보자에게 알려주십시오. AccountBalance() - 잔액의 금액을 표시하고 계산된 잔액(calc_balance)을 계산해야 합니다.

그 본질은 간단하지만 아직 쓸 수 없습니다. 총 미결 주문 및 보류 주문 (Orderstotal)이 있습니다. 예를 들어 3개, 미결 위치당 최대 위험은 2%입니다.

다음 거래를 열려면 최대값을 계산해야 합니다. 결제 잔액의 위험(2%), 즉 공식의 논리는 대략적입니다. calc_balance=AccountBalance()-2%-2%-2%,

즉, 순차 빼기 - 그러나 코드로 작성하는 방법은 아직 불가능합니다. 여러분의 도움을 바랍니다.

미리 감사드립니다!

 
매수 및 매도 포지션에 대해 지분(AccountEquity())과 마진(AccountMargin())이 어떻게 분리되는지 알려주십시오.
 
TG :
매수 및 매도 포지션에 대해 지분(AccountEquity())과 마진(AccountMargin())이 어떻게 분리되는지 알려주십시오.
AccountEquity()는 귀하의 계정에서만 가능하고 AccountMargin()은 귀하의 조건에 따라 Kim의 "유용한 기능"을 참조하십시오!
 
여러분, 누군가 D1에 지지선과 저항선 을 설정하는 지표나 조언자를 조언할 수 있습니까? 가급적 지연 없이)))
 
Top2n :
여러분, 누군가 D1에 지지선과 저항선을 설정하는 지표나 조언자를 조언할 수 있습니까? 가급적 지연 없이)))
검색된 항목: DailyPivotPoints
 

모두에게 좋은 하루! 문제가 있는데 무엇이 잘못되었는지 알 수 없습니다.


두 가지 기능이 제공됩니다. 1을 호출하면 아무 것도 작동하지 않습니다. 두 번째 경우 모든 것이 작동합니다. 무슨 일이야?

미리 감사드립니다!

 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 :

모두에게 좋은 하루! 문제가 있는데 무엇이 잘못되었는지 알 수 없습니다.


두 가지 기능이 제공됩니다. 1을 호출하면 아무 것도 작동하지 않습니다. 두 번째 경우 모든 것이 작동합니다. 무슨 일이야?

미리 감사드립니다!


루프의 OrderSell 및 OrderBuy에서 GetLastError() 함수 는 오류 값을 0으로 재설정합니다(GetLastError 주의해서 도움말 참조).

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

함수를 호출하면 0이 됩니다. 주기에서 직접 인쇄해 보십시오. 그러면 어떤 오류로 인해 주문이 열리지 않는지 알 수 있습니다.

 

도구를 "뒤집는" 간단한 표시기를 만들었습니다. 때로는 지각을 위해 부부를 반대로 보는 것이 더 쉽고 같은 사진을 볼 때 눈이 "흐려집니다". 불행히도 아래의 두 번째 부분에서 그래프는 Close[i]에서 가져왔습니다. 어떻게 파일을 읽지 않고(나는 파일로 작업을 시도조차 하지 않았습니다) 본격적인 그래프를 표시할 수 있습니까? 이견있는 사람.


파일:
converter.mq4  2 kb
 

역시 Kim의 기능이 아닌 다른 검색은 찾지 못했습니다.

미결제 주문의 마진을 별도로 올바르게 계산하는 방법은 무엇입니까?

다음과 같이 생각했습니다.

в цикле
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();


각 방향에 대해 별도로 계산이 필요합니다.