초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1045

 
Vladimir Baskakov :

상태의 올바른 철자에 대해 혼란스러워하는 경우 다음을 도와주세요.

두 가지 옵션이 있습니다.

  1. "MA Fast" 위의 "MA Slow"
  2. "MA Slow"는 "MA Fast"보다 작거나 같음


따라서 결과의 부호는 "+" 또는 "-"가 됩니다. 기호가 "-"이면 "-"가 항상 5*Point()보다 작기 때문에 조건이 충족되지 않습니다.


즉, 코드는 다음과 같습니다.

   if (ma_slow[ 0 ]>ma_slow[ 9 ])
       if (ma_slow[ 0 ]-ma_slow[ 9 ]> 5 * Point ())
        {

        }
   if (ma_slow[ 9 ]>ma_slow[ 0 ])
       if (ma_slow[ 9 ]-ma_slow[ 0 ]> 5 * Point ())
        {

        }
 
Vladimir Karputov :

두 가지 옵션이 있습니다.

  1. "MA Fast" 위의 "MA Slow"
  2. "MA Slow"는 "MA Fast"보다 작거나 같음


따라서 결과의 부호는 "+" 또는 "-"가 됩니다. 기호가 "-"이면 "-"가 항상 5*Point()보다 작기 때문에 조건이 충족되지 않습니다.


즉, 코드는 다음과 같습니다.

정확히! 두 번째 조건도 그렇게 생각했습니다;) 감사합니다
 
Artyom Trishkin :

디컴파일된 코드를 게시했나요? 실행 파일의 디컴파일과 관련된 다른 것을 요구했을 수도 있습니다.

아니요, 질문은 mql4에서 mql5로 코드를 번역하는 것에 관한 것이었습니다.
별짓을 다했는데 작업중에 에러가 나서 해결을 위해 도움을 요청했습니다

 
Roman Sharanov :

아니요, 질문은 mql4에서 mql5로 코드를 번역하는 것에 관한 것이었습니다.
별짓을 다했는데 작업중에 에러가 나서 해결을 위해 도움을 요청했습니다

기이한. 코드가 있었나요? 아마도 디컴파일의 흔적이 있었을까요?

 

포지션을 열 수 없습니다. 어떤 값에 대해서도 잘못된 볼륨의 응답을 받았습니다.


   if (direction== 0 )
      open_label=open_label+ "Buy  " + "V = " + DoubleToString (V, 2 )+ " price = " + DoubleToString (price_open, _Digits )+
                   " SL = " + DoubleToString (SL, _Digits )+ "  TP = " + DoubleToString (TP, _Digits );
   else    
      open_label=open_label+ "Sell  " + "V = " + DoubleToString (V, 2 )+ " price = " + DoubleToString (price_open, _Digits )+
                   " SL = " + DoubleToString (SL, _Digits )+ "  TP = " + DoubleToString (TP, _Digits );
   
     Print (open_label);

   if (direction== 0 && last.ask<=price_open)
      {
         if (!trade.PositionOpen( _Symbol , ORDER_TYPE_BUY ,V,price_open,SL,TP))
           Print ( "Метод PositionOpen() потерпел неудачу. Код возврата=" ,trade.ResultRetcode(),
             ". Описание кода: " ,trade.ResultRetcodeDescription());
         else
           Print ( "Метод PositionOpen() выполнен успешно. Код возврата=" ,trade.ResultRetcode(),
             " (" ,trade.ResultRetcodeDescription(), ")" );
      }


2019.05.20 21:53:24.814 position_open (XAUUSD,M10) 매수 기다림 V = 1.00 가격 = 1278.15 SL = 0.00 TP = 0.00

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) CTrade::OrderSend: 마켓 바이 1.00 XAUUSD [무효 거래량]

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) PositionOpen() 메서드가 실패했습니다. 반환 코드=10014. 코드 설명: 잘못된 볼륨

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
안녕하세요 여러분, MT5에서 열린 거래에 대한 수수료를 계산하는 방법을 알려주거나 기성 기능이 있는 곳을 알려주세요
 
Aleksandr Egorov :
안녕하세요 여러분, MT5에서 열린 거래에 대한 수수료를 계산하는 방법을 알려주거나 기성 기능이 있는 곳을 알려주세요
 #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

// Комиссия всех открытых позиций.
double GetSumCommission()
{
   double Sum = 0 ;
  
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
     if ( OrderSelect (i, SELECT_BY_POS))
      Sum += OrderCommission();
      
   return (Sum);
}
 
Aleksandr Egorov :
안녕하세요 여러분, MT5에서 열린 거래에 대한 수수료를 계산하는 방법을 알려주거나 기성 기능이 있는 곳을 알려주세요
 PositionGetDouble ( POSITION_COMMISSION )

또는 CPositionInf 위원회

 
Konstantin Nikitin :

또는 CPositionInf 위원회

오랫동안 쟁기질하지 않았습니다.

 
fxsaber :

오랫동안 쟁기질하지 않았습니다.

그나저나 제 손이 모든 면에서 서툴다는 생각이 들어서 쟁기질을 하지 않는데 기능은 확실히 쟁기질을 하고 있습니다 어쨌든 답변해주셔서 감사합니다

최소한 이 커미션을 얻을 수 있는 곳에서 다리가 자라는 위치를 이해합니다)) 캠페인을 위해 내 자신의 기능을 작성했습니다. 저는 MT5를 처음 사용하므로 올바르게 또는 잘못 평가할 수 있다면 너무 많이 걷어차지 마십시오

글쎄요, 맞는 것 같아요, 나는 모든 것을 확인했습니다

double PROFIT()     {

   double   rez= 0 , alprof= 0 ,svap= 0 ,commicion= 0 ;

   ulong ticet= 0 ,tikett= 0 ;

   long   entry= 0 ;

   string com= "" ;

   ulong tik;

   ulong ord;

   int i= 0 ;

   for (i= PositionsTotal ()- 1 ;i>= 0 ;i--) 

     {

       if ( PositionGetSymbol (i)== Symbol () || PositionGetSymbol (i)==Pair)

        {

         if ((tik= PositionGetTicket (i))> 0 )

           {

            alprof+= PositionGetDouble ( POSITION_PROFIT );

            svap+= PositionGetDouble ( POSITION_SWAP );

           }

        }

     }

   HistorySelect ( 0 , TimeCurrent ());

   for ( uint r= HistoryDealsTotal ()- 1 ;r> 0 ;r--) 

     {

       if ((tikett= HistoryDealGetTicket (r))> 0 ) 

        {

         ord= HistoryDealGetInteger (tikett, DEAL_ORDER );

         entry = HistoryDealGetInteger (tikett, DEAL_ENTRY );

         if (entry== DEAL_ENTRY_IN )

           {

             for ( int t= PositionsTotal ()- 1 ;t>= 0 ;t--) 

              {

               if (tik==ord)

                 {

                  commicion+= HistoryDealGetDouble (tikett, DEAL_COMMISSION );

                 }

              }

           }

        }

     }

   rez+=alprof+commicion+svap;

   return (rez);   }

사유: