오류, 버그, 질문 - 페이지 1471

 

메소드 끝에서 const 수정자의 목적은 무엇입니까?

SetPoint( const int point, const datetime time, const double price) const ;    < ------

변수 이름을 초기화할 때 이 수정자를 사용하면 어떤 이점이 있습니까?

변수가 변경되어 다른 값을 얻을 수 없다는 사실을 알고 있습니다.

아마도 이 수정자는 프로그램의 속도를 높일 수 있습니다 ???

 
Vladimir Pastushak :

메소드 끝에서 const 수정자의 목적은 무엇입니까?

변수 이름을 초기화할 때 이 수정자를 사용하면 어떤 이점이 있습니까?

변수가 변경되어 다른 값을 얻을 수 없다는 사실을 알고 있습니다.

아마도 이 수정자는 프로그램의 속도를 높일 수 있습니다 ???

OOP에서 가져온 것입니다. 메서드가 호출된 개체를 변경하지 않음을 의미합니다. 논쟁은 그것과 아무 관련이 없습니다.

이점은 프로토타입을 보면 객체가 변경되지 않는다는 것을 알 수 있다는 것입니다. 시계.

 
MT4 테스터의 "차트" 탭에서 마우스 오른쪽 버튼을 클릭하고 "복사"를 선택하면 팝업 창/메뉴가 사라지지 않습니다.
 

여러분, 모두 건강합니다) 코드 작성을 도와주세요(또는 오히려 작은 부분 하나). 목표는 이 것입니다 - 주문 선택 기록 기능이 있고 거기에서 마지막 주문이 어떤 값으로 마감되었는지 확인해야 합니다 - 긍정적 또는 부정적. 누가 더듬거리고 구독을 취소하십시오 (그렇지 않으면 이미 머리가 깨졌습니다))))

미리 감사드립니다.

 
Tema97 :

여러분, 모두 건강합니다) 코드 작성을 도와주세요(또는 오히려 작은 부분 하나). 목표는 이 것입니다 - 주문 선택 기록 기능이 있고 거기에서 마지막 주문이 어떤 값으로 마감되었는지 확인해야 합니다 - 긍정적 또는 부정적. 누가 더듬거리면 구독을 취소하십시오 (그렇지 않으면 이미 머리가 깨졌습니다)))

미리 감사드립니다.

MQL4

 //+------------------------------------------------------------------+
   // Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу, типу и магику
   bool isLossLastClosePos( string sy, int op, int mn) {
       datetime t= 0 ;
       int i, j=EMPTY;
       for (i=OrdersHistoryTotal()- 1 ; i>= 0 ; i--) {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) {
             if (OrderMagicNumber()!=mn) continue ;
             if (OrderSymbol()!=sy)       continue ;
             if (OrderType()!=op)         continue ;
             if (t<OrderCloseTime()) {
               t=OrderCloseTime();
               j=i;
               }
            }
         }
       if ( OrderSelect (j,SELECT_BY_POS,MODE_HISTORY)) {
         if (OrderProfit()+OrderCommission()+OrderSwap()< 0 ) return ( true );
         }
       return ( false );
   }
//+------------------------------------------------------------------+
   // Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу и магику
   bool isLossLastClosePos( string sy, int mn) {
       datetime t= 0 ;
       int i, j=EMPTY;
       for (i=OrdersHistoryTotal()- 1 ; i>= 0 ; i--) {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) {
             if (OrderMagicNumber()!=mn) continue ;
             if (OrderSymbol()!=sy)       continue ;
             if (OrderType()> 1 )           continue ;
             if (t<OrderCloseTime()) {
               t=OrderCloseTime();
               j=i;
               }
            }
         }
       if ( OrderSelect (j,SELECT_BY_POS,MODE_HISTORY)) {
         if (OrderProfit()+OrderCommission()+OrderSwap()< 0 ) return ( true );
         }
       return ( false );
   }
//+------------------------------------------------------------------+

다음과 같이 확인합니다.

 if (isLossLastClosePos(symbol, magic)) {
   // последняя позиция закрыта в убытке
   }
 
Tema97 :

여러분, 모두 건강합니다) 코드 작성을 도와주세요(또는 오히려 작은 부분 하나). 목표는 이 것입니다 - 주문 선택 기록 기능이 있고 거기에서 마지막 주문이 어떤 값으로 마감되었는지 확인해야 합니다 - 긍정적 또는 부정적. 누가 더듬거리고 구독을 취소하십시오 (그렇지 않으면 이미 머리가 깨졌습니다))))

미리 감사드립니다.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает тип закрытия по профиту, 
//|  1= позиция закрыта в профите,                                             |
//|  2- позиция закрыта в минусе                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int isCloseLastPosByStoporTake( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t;
   int       i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
       double ocp=OrderProfit();
if (OrderProfit()+OrderCommission()+OrderSwap()> 0 ) return ( 1 );
if (OrderProfit()+OrderCommission()+OrderSwap()< 0 ) return ( 2 );
  }
   return ( 0 );
}

알아내려면 다음을 수행하십시오.

 if (isCloseLastPosByStoporTake( "" ,- 1 ,- 1 )== 1 ) // Позиция закрыта в плюсе
if (isCloseLastPosByStoporTake( "" ,- 1 ,- 1 )== 2 ) // Позиция закрыта в минусе
 
Artyom Trishkin :

MQL4

다음과 같이 확인합니다.

))))

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг убыточности последней позиции.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isLossLastPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t;
   int       i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
     if (OrderProfit()< 0 ) return (True);
  }
   return (False);
}
 
Vladislav Andruschenko :

))))

당신은 지금 당신의 힌트로 어리석은 일을하고 있다는 것을 이해합니까?

코드는 내 것입니다. Igor에서 변수의 논리와 이름을 인수했습니다. 그래서 - 당신의 힌트를 지나쳤습니다. 함수 이름? 의미를 반영합니까, 아니면 영어 붐붐을 말합니까?

 
Artyom Trishkin :

MQL4

다음과 같이 확인합니다.

매우 감사합니다!!!!
 
Vladislav Andruschenko :

알아 보려면 다음을 수행하십시오.

매우 감사합니다 !!!