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

 
Sprut112 :
EA는 헤지에서 거래합니다. 표준 검사를 추가할까요?

혹시 원심분리기에서 테스트 중이신가요? 일부 센트 계정에서 최소 랏은 0.1입니다.

 
Konstantin Nikitin :

테스터에서 일반적으로 거래, 빌드 1960

왜 #16 로트 0.01인가요?
 
Konstantin Nikitin :

혹시 원심 분리기에서 테스트합니까? 일부 센트 계정에서 최소 랏은 0.1입니다.

아니요, 최소 최대 및 로트 단계에 대한 확인이 있습니다.
 
Sprut112 :
왜 #16 로트 0.01인가요?

내 그림에 대해 이야기하고 있다면 전문가의이 부분 폐쇄가 효과가있었습니다. 거기에 가깝다고 한다

스프루트112 :
아니요, 최소 최대 및 로트 단계에 대한 확인이 있습니다.
그래서 아마도이 검사는 최소값이 현재 것보다 큰지 확인하고 대체합니다.
 
Konstantin Nikitin :

내 그림에 대해 이야기하고 있다면 전문가의이 부분 폐쇄가 효과가있었습니다. 거기에 가깝다고 한다

그래서 아마도이 검사는 최소값이 현재 것보다 큰지 확인하고 대체합니다.
여기에서 생각해야 합니다. 아마도 그렇게 될 것입니다. 테스터에서 이것은 즉시 발생하지 않고 한 달에 어딘가에 발생합니다.
 
Artyom Trishkin :

이 코드가 #property strict 를 사용하여 mql4에서 원하는 대로 작동하지 않는 이유는 무엇입니까?

Vladimir가 표시한 코드와 근본적인 차이점은 무엇입니까?

그리고 이러한 구현에는 차이가 없습니다. 코드가 텍스트 설명을 표시하지 않는 이유는 단 하나입니다. 이것은 mql4 코드에 #property strict가 없기 때문입니다.


바로 이해가 되지 않았고 =0, =1 등이 부족해서 나에게 맞지 않는다고 생각했는데...

 enum MySymbol
     {
      symbol_0 = 0 , // AUDUSD
      symbol_1 = 1 , // NZDUSD
      symbol_2 = 2 , // USDCAD
      symbol_3 = 3 , // USDCHF
      symbol_4 = 4 , // USDJPY
      symbol_5 = 5 , // EURJPY
      symbol_6 = 6 , // EURUSD
      symbol_7 = 7 , // GBPUSD
      symbol_8 = 8 , // #CL
     };

그러나 그것은 같은 것으로 밝혀졌습니다 ...

문자열 xx=EnumToString(Symboll_(1)); // 결과 symbol_1

하지만 NZDUSD를 받아야 했습니다.

  в таком варианте всё Ок но не получается добавить символ с решёткой #CL
enum  Symboll_
  {
   AUDUSD,
   NZDUSD,
   USDCAD
   // #CL
  };
string xx=EnumToString(Symboll_(1)); // результат NZDUSD

그러나 배열 옵션은 필요한 것입니다 ...

 
xxz :

바로 이해가 되지 않았고 =0, =1 등이 부족해서 나에게 맞지 않는다고 생각했는데...

그러나 그것은 같은 것으로 밝혀졌습니다 ...

문자열 xx=EnumToString(Symboll_(1)); // 결과 symbol_1

하지만 NZDUSD를 받아야 했습니다.

그러나 배열 옵션은 필요한 것입니다 ...

당연히 EnumToString()을 사용하여 열거를 인쇄할 때 "//" 뒤에있는 변수에 대한 설명을 받지 않고 변수 자체를 있는 그대로 받습니다.

원하는 방식으로 인쇄하려면 인쇄할 아날로그 함수 EnumToString()을 만들어야 합니다.

이러한 열거의 경우:

 enum ENUM_SYMBOL_NAMES
  {
   SYMBOL_NAME_AUDUSD,     // AUDUSD
   SYMBOL_NAME_NZDUSD,     // NZDUSD
   SYMBOL_NAME_USDCAD,     // USDCAD
   SYMBOL_NAME_USDCHF,     // USDCHF
   SYMBOL_NAME_USDJPY,     // USDJPY
   SYMBOL_NAME_EURJPY,     // EURJPY
   SYMBOL_NAME_EURUSD,     // EURUSD
   SYMBOL_NAME_GBPUSD,     // GBPUSD
   SYMBOL_NAME_SHARP_CL,   // #CL
  };
input ENUM_SYMBOL_NAMES InpNames; // Instrument

다음과 같이 다소:

 //+------------------------------------------------------------------+
string InstrumentToString( void )
  {
   string enm= EnumToString (InpNames);
   int index= StringFind (enm, "SHARP_" );
   int shift=(index> WRONG_VALUE ? index+ 6 : 12 );
   string name= StringSubstr (enm,shift);
   return (index> 0 ? "#" +name : name);
  }
//+------------------------------------------------------------------+

글쎄, 전화 :

 Print (InstrumentToString());
 
double get_lot( int pair, double input_lots) {
   if (input_lots<min_lot[pair]) return (min_lot[ir]);
   return (input_lots);
 
콘스탄틴 니키틴


:

내 그림에 대해 이야기하고 있다면 전문가의이 부분 폐쇄가 효과가있었습니다. 거기에 가깝다고 한다

그래서 아마도이 검사는 최소값이 현재 것보다 큰지 확인하고 대체합니다.
 if ( SymbolInfoDouble (Symb, SYMBOL_VOLUME_STEP )< 0.1 ) dg= 2 ; else
       if ( SymbolInfoDouble (Symb, SYMBOL_VOLUME_STEP )< 1.0 ) dg= 1 ;

여기 내 생각에는 뭔가 잘못되었습니다

 
Vladimir Karputov :

그리고 더 좋은 것은 - 당신이 받고 싶은 것을 명확하게 공식화하십시오. 아마도 완전한 예를 보여줄 것입니다.

한 번, 2010년 겨울에... 나는 또한 표시기에서 필터링하도록 요청했는데, 그 핵심은 iBars 용 PERIOD_MN1로 Max & Min HLine을 그리는 것입니다....))))

나는 그것을 스스로 알아 냈습니다. MT4를 마스터했습니다.

즉시가 아니라 천천히, MT5를 마스터합니다.

.... "당신이 얻고자 하는 것을 명확하게 공식화하십시오" 공식화: 나는 (나 자신) 내가 프로그래밍한 것을 (나 자신) 변환하고 동시에 MT5에서 (나 자신) 알아낼 것입니다)))


하지만 (분명히) 예시로 보여준 것은 사라지지 않았습니다.


IF SHO 나는 돌아갈 것이다))))

그렇다면 나는 돌아갈 것이다.






 
Artyom Trishkin :

당연히 EnumToString()을 사용하여 열거를 인쇄할 때 "//" 뒤에 있는 변수에 대한 설명을 받지 않고 변수 자체를 있는 그대로 받습니다.

원하는 방식으로 인쇄하려면 인쇄할 아날로그 함수 EnumToString()을 만들어야 합니다.


가장 간단한 문제를 풀기 위해서는 함수를 생성해야 하고, 쓸데없는 코드가 잔뜩 쌓여 있는 것이 문제입니다.

한줄이 아닌 열줄...

최대한 간결하게 쓰려고...

처음에는 코드에 한 줄만 추가하여 이 문제를 해결할 수 있었습니다.

            xx= iClose (Symbol_(i),0, 50 );
xx= iClose ("#CL",0, 50 );

하지만 코드에 추가 줄이 있었기 때문에 이 옵션이 마음에 들지 않았습니다...

나는 "더러운" 코드를 좋아하지 않는다...

사유: