MetaTrader 4 Build 529 베타가 새로운 컴파일러와 함께 출시됨 - 페이지 125

 
stringo :

입력 변수를 변경할 수 없습니다!

extern 대신 input 키워드를 사용하면 컴파일러에서 그렇게 할 수 없습니다.

우리는 이전 쿼드 기능을 유지하기 위해 무엇을 할 수 있는지 생각할 것입니다.

ps. 올려주셔서 감사합니다.


그래서 그들을 바꿀 목표가 없었습니다!

그들은 단순히 추가 계산에 사용됩니다. 더 이상은 없어!

글쎄, 원칙적으로 우리는 추가 변수를 도입하여 이 문제를 해결했음이 분명합니다.

 extern int TakeProfit_= 10 ;
int TakeProfit;
......  
   int dig = ( int )MarketInfo( Symbol (), MODE_DIGITS);
   if (dig == 5 || dig == 3 )
   {
      TakeProfit  = TakeProfit_* 10 ;
.....
 
Night63 :


그래서 그들을 바꿀 목표가 없었습니다!

그들은 단순히 추가 계산에 사용됩니다. 더 이상은 없어!

글쎄, 원칙적으로 우리는 추가 변수를 도입하여 이 문제를 해결했음이 분명합니다.


그래서 그렇습니다 ... 그러나 왜 모든 틱 에서 불변 상수를 확인하는 것을 귀찮게합니까? init()에서 한 번 정의하면 충분합니다.
 
stringo :

입력 변수를 변경할 수 없습니다!

외부 변수(일부 변수의 경우) 값을 기본값으로 사용하고 ini 파일에서 동일한 매개변수에 대한 나머지 데이터를 읽습니다.

Expert Advisors는 자체 입력 매개변수가 있는 여러 전략과 동시에 작업합니다. 예시:

 extern int TF = 15 ;
int gia_TF[ 5 ];
void start()
{
     for ( int li_TF = 0 ; li_TF < ArraySize (gia_TF); li_TF++)
    {
        TF = gia_TF[li_TF];
    }
}

예 - 추가 변수를 도입하여 문제를 해결하지만 왜 ?! 지정하십시오. 새 MT에는 이러한 기능이 제공되지 않습니까?

 
TarasBY :
외부 변수(일부 변수의 경우) 값을 기본값으로 사용하고 ini 파일에서 동일한 매개변수에 대한 나머지 데이터를 읽습니다.

Expert Advisors는 자체 입력 매개변수가 있는 여러 전략과 동시에 작업합니다. 예시:

예 - 추가 변수를 도입하여 문제를 해결하지만 왜 ?! 지정하십시오. 새 MT에는 이러한 기능이 제공되지 않습니까?

그게 내가 말한거야... :-)

중복입니다. 이는 외부 변수를 외부 변수로 포함하는 것이 필요하지 않음을 의미합니다. extern을 제거할 수 있습니다. 당신은 그 차이를 알아차리지 못할 것입니다. 어쨌든 INI 파일에서 초기화합니다.

 
TarasBY :
외부 변수(일부 변수의 경우) 값을 기본값으로 사용하고 ini 파일에서 동일한 매개변수에 대한 나머지 데이터를 읽습니다.

Expert Advisors는 자체 입력 매개변수가 있는 여러 전략과 동시에 작업합니다. 예시:

예 - 추가 변수를 도입하여 문제를 해결하지만 왜 ?! 지정하십시오. 새 MT에는 이러한 기능이 제공되지 않습니까?


아니요, 박탈되지 않습니다.

모든 것이 이전 네 가지와 같을 것입니다. 오래 전에 작성된 코드(새 컴파일러로 다시 컴파일한 경우에도)는 이전과 같이 작동합니다.

 
Zhunko :

그게 내가 말한거야... :-)

중복입니다. 이는 외부 변수를 외부 변수로 포함하는 것이 필요하지 않음을 의미합니다. extern을 제거할 수 있습니다. 당신은 그 차이를 알아차리지 못할 것입니다. 어쨌든 INI 파일에서 초기화합니다.

바딤! 보편성과 다분산을 위한 우리의 전사는 누구인가?! :)
 
stringo :

아니요, 박탈되지 않습니다.

모든 것이 이전 네 가지와 같을 것입니다. 오래 전에 작성된 코드(새 컴파일러로 다시 컴파일한 경우에도)는 이전과 같이 작동합니다.

고맙습니다. 확인.
 
avtomat :

그래서 그렇습니다 ... 그러나 모든 틱에서 불변 상수를 확인하는 것을 귀찮게하는 이유는 무엇입니까? init()에서 한 번 정의하면 충분합니다.


맞습니다. 처음에는 문제를 해결하는 단계에서 모든 것을 시도했습니다.

이제 init로 돌아갔습니다. 결함을 지적해 주셔서 감사합니다!

 
stringo :

코드의 물리적 의미를 설명할 수 있습니까?

이 Expert Advisor가 작동하는 차트가 열려 있으면 기호가 이미 선택되어 있습니다.

이미 선택한 캐릭터는 재선택할 수 없습니다. 차트가 열려 있는 기호는 숨길 수 없습니다.


물리적 의미는 어드바이저의 입력 매개변수에 문자열로 이름이 입력된 기호가 거래 가능한지 확인하는 것입니다. MT5의 동일한 코드가 작동합니다.

내가 제공한 코드는 예시일 뿐입니다. 조금 다르지만 의미는 변하지 않습니다.

추신: 테스터의 오류 138은 어떻습니까?

코드:

 void OnTick ()
  {
   if ( OrdersTotal ()== 0 )
     {
       string SYMBOL= Symbol ();
       int digits=( int ) SymbolInfoInteger (SYMBOL, SYMBOL_DIGITS );
       MqlTick lasttick={ 0 };
       if (! SymbolInfoTick (SYMBOL,lasttick))
         return ;
       double ask=lasttick.ask;
       double bid=lasttick.bid;

       OrderSend (SYMBOL,OP_BUY, 0.1 , NormalizeDouble (ask,digits), 1000 , 0 , 0 , "Test" , 0 , 0 ,CLR_NONE);
     }
  }

결과:

 
그래픽 개체가 있는 몇 가지 작은 것들.

이번에 는 OBJ_EDIT 입니다.

1) 데이터를 입력할 수 없습니다. OBJ_EDIT 내부에서 마우스를 클릭해도 아무 일도 일어나지 않고 필드의 데이터가 선택되지 않습니다(이전에는 "ENTER" 키를 누르는 것 외에는 필드를 나가는 것이 불가능했지만 이제는 불가능합니다. 입력하다);

2) OBJPROP_ANCHOR가 작동하지 않습니다.

3) OBJ_EDIT를 선택하면 왼쪽 위 모서리에 개체를 이동하는 지점이 나타나지만 일부는 매우 작지만 일부는 좌표를 계산하는 차트의 모서리(OBJPROP_CORNER)에 따라 이동합니다.

그래프 그리기 및 이동과 관련된 기타 문제. 개체가 더 이상 표시되지 않습니다. 수정해주셔서 감사합니다.