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

 
fxsaber :
당신은 변태없이 물었다. 그리고 그들과 함께라면
그래서 이렇게
double GetPositionCommission( void )
{
   double Commission = :: PositionGetDouble ( POSITION_COMMISSION );

   // На случай, если POSITION_COMMISSION не работает
   if (Commission == 0 )
  {
     const ulong Ticket = MT4ORDERS::GetPositionDealIn();

     if (Ticket > 0 )
    {
       const double LotsIn = :: HistoryDealGetDouble (Ticket, DEAL_VOLUME );

       if (LotsIn > 0 )
        Commission = :: HistoryDealGetDouble (Ticket, DEAL_COMMISSION ) * :: PositionGetDouble ( POSITION_VOLUME ) / LotsIn;
    }
  }

   return (Commission);
}
또는

나는 이것이 오래된 게시물이라는 것을 알고 있지만 방금 파편에 맞았습니다.

이 부분은 정확하지 않습니다. 외환 수수료는 0일 수 있습니다.

 // На случай, если POSITION_COMMISSION не работает
   if (Commission == 0 )
 
Artyom Trishkin :
ObjectGetValueByShift()(MT4만 해당) , ObjectGetValueByTime()(MT4, MT5)

감사해요
 
Alexey Volchanskiy :

나는 이것이 오래된 게시물이라는 것을 알고 있지만 방금 파편에 맞았습니다.

이 부분은 정확하지 않습니다. 외환 수수료는 0일 수 있습니다.


옳지 않은 것은?
 


MQL5의 복사 생성자 문제

복사 생성자에서 동적 배열 this.arr은 디버거에서 1차원으로 나타납니다.

결과적으로 출력 시 ob2.arr 크기는 0입니다.

왜요?

동일한 단편이 MQL4에서 올바르게 작동합니다.

MT5 에디터

메타에디터 5.0 1578

MT4 편집기

메타에디터 5.0 1562

 class obj
  {
public :
   double             arr[][ 2 ];
                     obj(){}
                     obj(obj &o)
     {
       ArrayCopy ( this .arr,o.arr);
     }
   obj operator =(obj &o)
     {
       ArrayCopy ( this .arr,o.arr);
       return & this ;
     }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
obj Copy(obj &o)
  {
   return o;
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   obj ob1,ob2;
   ArrayResize (ob1.arr, 3 );
   ob2=Copy(ob1);
   bool stop= true ;
  }


 
Klimenko_a_e :

결과적으로 출력 시 ob2.arr 크기는 0입니다.

왜요?

obj * Copy(obj &o)
  {
   return & o;
  };

그렇지 않으면 새 개체를 만듭니다.


   void operator =(obj &o)
     {
       ArrayCopy ( this .arr,o.arr);
       return ; // &this;
     }

그렇지 않으면 너무 많습니다.


귀하의 코드가 MQL4에서 올바르게 작동했는지 의심스럽습니다.

 
좋은 하루! 보류 중인 주문 을 여는 방법을 알려주세요 ???
미결 구매로 하나의 보류 주문을 열어야 하는 경우 주기를 중지하는 방법???

그는 보증금이 소진될 때까지 나를 위해 가방을 열어줍니다!

미리 감사드립니다!!!

 
Akinak :
좋은 하루! 보류 중인 주문 을 여는 방법을 알려주세요 ???
미결 구매로 하나의 보류 주문을 열어야 하는 경우 주기를 중지하는 방법???

그는 보증금이 소진될 때까지 나를 위해 가방을 열어줍니다!

미리 감사드립니다!!!


먼저 "그가 누구인지"를 알아야합니다.

 
Vladislav Andruschenko :


먼저 "그가 누구인지"를 알아야합니다.


블라디슬라프 안드루셴코 :


먼저 "그가 누구인지"를 알아야합니다.


for(int i=0; i<OrdersTotal();i++)
{
if( 주문선택(i, SELECT_BY_POS ))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==매직)
if(b>0)
{
int tak=OrderSend(Symbol(),OP_SELLSTOP,Lots_work,SOPRase,Slip,0,0,"",Magic,0,clrRed);
if(타크>0)
Print("판매중지 확인");
또 다른
Print("판매중지 오류");
}
if(s>0)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots_work,BOPrase,Slip,0,0,"",Magic,0,clrBlue);
if(틱>0)
Print("구매 중지 확인");
또 다른
Print("구매 중지 오류");
}

}


 

음, 루프에서 다음을 수행하십시오.

위치 열기 - 주문 열기, 위치 수가 추가되고 주기가 무한대로 반복됩니다.

 int OrderSTotal= OrdersTotal ();
for ( int i= 0 ; i<OrderSTotal;i++)
  {
   if ( OrderSelect (i, SELECT_BY_POS ))
       if ( OrderSymbol ()== Symbol ())
         if ( OrderMagicNumber ()==Magic)

           {
             if (b> 0 )
              {
               int tak= OrderSend ( Symbol (), OP_SELLSTOP ,Lots_work,SOPrase,Slip, 0 , 0 , "" ,Magic, 0 , clrRed );
               if (tak> 0 )
                   Print ( "SELLSTOP  Ok" );
               else
                   Print ( "SELLSTOP  Error" );
              }

             if (s> 0 )
              {
                 int tik= OrderSend ( Symbol (), OP_BUYSTOP ,Lots_work,BOPrase,Slip, 0 , 0 , "" ,Magic, 0 , clrBlue );
               if (tik> 0 )
                   Print ( "BUYSTOP  Ok" );
               else
                   Print ( "BUYSTOP  Error" );
              }
           }
  }
//+------------------------------------------------------------------+


b와 s가 무엇인지 알아야 합니다

 
fxsaber :

그렇지 않으면 새 개체를 만듭니다.


그렇지 않으면 너무 많습니다.


귀하의 코드가 MQL4에서 올바르게 작동했는지 의심스럽습니다.

실제 코드에서 함수는 객체를 반환합니다.

내 생각에 복사 생성자는 이 경우 임시 복사본을 만들어야 합니다.

코드는 MQL5 빌드 1545에서도 올바르게 작동합니다.

새 빌드에서 복사 생성자는 1차원 배열의 크기도 조정할 수 없습니다: 오류 4007.

제 생각에는 이것은 옳지 않습니다.

사유: