MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 613

 
Tigerfreerun :
(OP_BUY==0)인 경우

왜 오해하는거야? 당신은 자신을 모르거나 그들이 도움이되는 지점에 무지하게 올라가거나 그런 농담을하지 마십시오. 그러나 당신이 초보자를위한 심각한 도움 라인에 있다는 것을 잊었습니다.

SanNneK :
모든 주문이 0인 경우의 조건은 if(OrdersTotal()==0) 입니다. 그리고 bais라는 이름이 0이면 조건을 작성하는 방법은 무엇입니까?

모든 주문을 반복하고 OrderType()==ORDER_TYPE_BUY 로 주문 수를 계산해야 합니다.

 
Artyom Trishkin :

왜 오해하는거야? 당신은 자신을 모르거나 그들이 도움이되는 지점에 무지하게 올라가거나 그런 농담을하지 마십시오. 그러나 당신이 초보자를위한 심각한 도움 라인에 있다는 것을 잊었습니다.

모든 주문을 반복하고 OrderType()==ORDER_TYPE_BUY 로 주문 수를 계산해야 합니다.

들었다. 지난 페이지에 제가 쓴 기능에 도움이 된다면 감사하겠습니다. 나 자신은 이 기능을 사용하여 주문을 계산합니다.

 int Count( int type, string sy)
  {
   int count= 0 ;
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
        { if (sy== OrderSymbol () && OrderMagicNumber ()==Magic && (type==- 1 || OrderType ()==type)) count++;}
     }
   return (count);
  }
 
Tigerfreerun :

들었다. 지난 페이지에 제가 쓴 기능에 도움이 된다면 감사하겠습니다. 나 자신은 이 기능을 사용하여 주문을 계산합니다.

그리고 어떤 도움이 필요한가요? Kimov 스타일의 꽤 작동하는 기능.
 
Alexey Viktorov :
그리고 어떤 도움이 필요한가요? Kimov 스타일의 꽤 작동하는 기능.

마지막 페이지에서 ArraySort 함수 에 대한 잘못된 시작 위치 0 오류와 함께 함수가 작성되었습니다. 그리고 기능 설명을 요청합니다. 복제

 void MaxMinProfit()
{
int i, N, MaxTic, MinTic;
double    MinProf= 0 , MaxProf= 0 , OP, g, a[][ 2 ];
string MinSym, MaxSym;
ArrayResize (a, 0 );
 
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--) 
  {    
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) 
    { 
     if ( OrderType ()== OP_SELL ||   OrderType ()== OP_BUY )
      {
       OP = NormalizeDouble ( OrderProfit ()+ OrderSwap ()+ OrderCommission (), 2 );
       
       if (MinProf>OP) 
      {
       
          MinProf=OP;
          MinTic= OrderTicket ();
          MinSym= OrderSymbol ();
          
         }
         
       if (OP> 0 ) 
      {
       
          N++;
             ArrayResize (a, N);
            a[N- 1 ][ 0 ]=OP;
            a[N- 1 ][ 1 ]= OrderTicket ();
          
         }
         
         }
         }
         
         }
         
       ArraySort (a, WHOLE_ARRAY , 0 , MODE_DESCEND ); //MODE_ASCEND);
      
       for (i= 0 ; i<Level; i++) 
       {
     
     g+=a[i][ 0 ];
     //int ti=a[i-2][1];
     }
         
         
     
     if (MinProf < 0 && (g+MinProf)>=ProcMax)
      {
       for (i= 0 ; i<Level; i++) 
       {
       if ( OrderSelect (a[i][ 1 ], SELECT_BY_TICKET , MODE_TRADES ))
        {
         //Alert(a[i][1]);
         if ( OrderType ()== OP_BUY )
         {
           OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), Slip, CLR_NONE);
          }
           if ( OrderType ()== OP_SELL )
           {
           OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), Slip, CLR_NONE);
           }
          }
         }
          
          
          
           if ( OrderSelect (MinTic, SELECT_BY_TICKET , MODE_TRADES ))
        {
         if ( OrderType ()== OP_BUY )
         {
           OrderClose (MinTic, OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), Slip, CLR_NONE);
          }
           if ( OrderType ()== OP_SELL )
           {
           OrderClose (MinTic, OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), Slip, CLR_NONE);
           }
          }}       
return ;
}
 

클래스 요소 사이에 매개변수를 전달하는 가장 좋은 방법은 무엇입니까? 클래스 요소도 클래스 요소입니다.

주어진:

 class element{
public:
int a;
         void fnc(){
        a++;            
        }
};

class elementBase{
public:
	int b;
        element one;
        element two;
};

a.fnc() 함수에서 two.a의 값을 어떻게든 변경할 수 있습니까?


내 작업에서 클래스 1 의 요소가 변경되면 클래스 2 의 변수를 다시 계산해야 합니다. 아름답게 만드는 방법을 알려주세요?)

어떻게 든 elementBase 클래스에서 b 값을 얻을 수 있습니까?

 
Tigerfreerun :

마지막 페이지에서 ArraySort 함수 에 대한 잘못된 시작 위치 0 오류와 함께 함수가 작성되었습니다. 그리고 기능 설명을 요청합니다. 복제

생각하는 방향: 이익이 0보다 작으면... 정렬하는 동안 배열의 크기는 무엇입니까???

그리고 주문이 전혀 없다면 배열의 크기는 얼마입니까???
 
Alexey Viktorov :

생각하는 방향: 이익이 0보다 작으면... 정렬하는 동안 배열의 크기는 무엇입니까???

그리고 주문이 전혀 없다면 배열의 크기는 얼마입니까???
이 기능이 정확히 무엇을 하는지 잘 모르겠습니다. 그러나 저자가 말했듯이, 임무는 이익이없는 주문을 기호 사이에 유익한 주문으로 덮는 것입니다. 기능을 수정하고 이해하는 데 도움이된다면 기쁠 것입니다.
 
Tigerfreerun :
이 기능이 정확히 무엇을 하는지 잘 모르겠습니다. 그러나 저자가 말했듯이, 임무는 이익이없는 주문을 기호 사이에 유익한 주문으로 덮는 것입니다. 기능을 수정하고 이해하는 데 도움이된다면 기쁠 것입니다.

컴파일 오류는 무엇입니까? 스크린샷을 보여줍니다.

코드에 오류는 없지만 성능에 영향을 미치지 않는 사소한 결함이 있습니다.

 
Vitaly Muzichenko :

컴파일 오류는 무엇입니까? 스크린샷을 보여줍니다.

코드에 오류는 없지만 성능에 영향을 미치지 않는 사소한 결함이 있습니다.

로봇을 시작할 때 " ArraySort 기능 에 대한 잘못된 시작 위치 0" 이 기능에 대해 설명해 주시겠습니까? 무슨 일이 일어나고 있는지 이해할 수 있습니다.
파일:
yOXZsAXZ-X4.jpg  479 kb
Pe3JLH8tgCc.jpg  556 kb
 
Tigerfreerun :
로봇을 시작할 때 " ArraySort 기능 에 대한 잘못된 시작 위치 0" 이 기능에 대해 설명해 주시겠습니까? 무슨 일이 일어나고 있는지 이해할 수 있습니다.

글쎄, 당신은 치명적인 오류를 보여주지 않았습니다.

기능이 작동하는 방식에 대해 스스로 답했습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL4에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

타이거프리런 , 2018.09.06 21:53

이 기능이 정확히 무엇을 하는지 잘 모르겠습니다. 그러나 저자가 말했듯이, 임무는 이익이 없는 주문을 기호 사이에 수익성 있는 주문으로 덮는 것입니다 . 기능을 수정하고 이해하는 데 도움이된다면 기쁠 것입니다.