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

 
Alexey Viktorov :

string x 변수를 혼동하지 마십시오. 및 문자열 문자 "x"

특정 문제를 이해하지 못했습니다. 따라서 구체적인 답은 없습니다.

함수 오버로딩에 대해 생각하는 것이 더 나을까요?

주 프로그램이 전달된 매개변수(..., ..., 문자열 x, 문자열 y)에 따라 object_xy 문자열 변수의 이름이 변경됨을 이해하는 범용 함수 function_xy 를 만들어야 하는 상황입니다. . 그렇지 않으면 function_xy() 함수의 코드를 따라 object_xy 변수의 이름을 수동으로 작성해야 합니다.
예를 들어,

 void function_xy(..., ..., string x= "EURUSD" , string y= "GBPUSD" )
{
...
string object_xy=... //то есть здесь программа должна понимать, что это переменная object_EURUSDGBPUSD
...
}

그렇지 않으면 이 function_xy() 함수에서 여러 그래픽 객체를 생성할 때 그래픽 함수의 매개변수를 수동으로 입력해야 합니다.

 void function_xy(..., ...,...)
{
...
string object_EURUSDGBPUSD=... //то есть здесь программа должна понимать, что это переменная object_EURUSDGBPUSD
...
ObjectCreate (object_EURUSDGBPUSD,...,...)
ObjectSet (object_EURUSDGBPUSD,...,...)
ObjectSetText (object_EURUSDGBPUSD,...,...)
...
}

void function_wz(..., ...,...)
{
...
string object_USDCHFUSDJPY=... //то есть здесь программа должна понимать, что это переменная object_EURUSDGBPUSD
...
ObjectCreate (object_USDCHFUSDJPY,...,...)
ObjectSet (object_USDCHFUSDJPY,...,...)
ObjectSetText (object_USDCHFUSDJPY,...,...)
...
}

이러한 기능이 최대 200개까지 있습니다. 어떻게든 이 문제를 줄이고 해결할 수 있습니까?
제 요점을 표현했으면 좋겠습니다.



 
Timur1988 :

주 프로그램이 전달된 매개변수(..., ..., 문자열 x, 문자열 y)에 따라 object_xy 문자열 변수의 이름이 변경됨을 이해하는 범용 함수 function_xy 를 만들어야 하는 상황입니다. . 그렇지 않으면 function_xy() 함수의 코드를 따라 object_xy 변수의 이름을 수동으로 작성해야 합니다.
예를 들어,

그렇지 않으면 이 function_xy() 함수에서 여러 그래픽 객체를 생성할 때 그래픽 함수의 매개변수를 수동으로 입력해야 합니다.

이러한 기능이 최대 200개까지 있습니다. 어떻게든 이 문제를 줄이고 해결할 수 있습니까?
제 요점을 표현했으면 좋겠습니다.

X와 Y에 따라 개체의 이름을 형성하는 코드를 작성하면 됩니다. 예를 들어 n=10*x+y와 같은 배열에서 가져옵니다. 그런 다음 x=0 및 y=0..9에서 처음 10개 요소가 선택되고 x=1 및 y=0..9에서 다음 10개 요소가 선택됩니다.

 
DOCTORGAD : 오류 검사로 단일 거래를 여는 코드가 있습니까? 테스트를 위한 것이 아니라 실제를 위한 것입니다... 함수로 수행될 수 있습니다. 일종의 막다른 골목일 뿐입니다.:(

오류를 확인하는 요점은 무엇입니까? 오류에 응답해야 합니다 !!! 어떻게?? 인쇄 ("오류 -...") - 이것은 디버깅에만 적합합니다. 그리고 그런 경우에도 Alert()가 더 편리합니다. pause = 지연으로 오류에 응답해야 합니다. 어딘가에 그것에 대한 기사가있었습니다. 하지만 어디? 보신 분 계시면 알려주세요!

 
Timur1988 :

주 프로그램이 전달된 매개변수(..., ..., 문자열 x, 문자열 y)에 따라 object_xy 문자열 변수의 이름이 변경됨을 이해하는 범용 함수 function_xy 를 만들어야 하는 상황입니다. . 그렇지 않으면 function_xy() 함수의 코드를 따라 object_xy 변수의 이름을 수동으로 작성해야 합니다.
예를 들어,

그렇지 않으면 이 function_xy() 함수에서 여러 그래픽 객체를 생성할 때 그래픽 함수의 매개변수를 수동으로 입력해야 합니다.

이러한 기능이 최대 200개까지 있습니다. 어떻게든 이 문제를 줄이고 해결할 수 있습니까?
제 요점을 표현했으면 좋겠습니다.





 //+------------------------------------------------------------------+
void OnStart ()
  {

   function_xy();

  }
//+------------------------------------------------------------------+x1 x2 x3
void function_xy( string x= "EURUSD" , string y= "GBPUSD" )
  {
   string object_xy;
   string c = "object_EURUSDGBPUSD" ;
//Для начала,  склеим переданные в функцию строковые переменные 

   object_xy= StringConcatenate ( "object_" ,x,y);
   
   Alert ( "object_xy = " ,object_xy);
   
// Cравниваем
   if ( StringCompare (c,object_xy)== 0 )
     {
       Alert ( "       Ура получилось ))))))))" );
       Alert ( "object_EURUSDGBPUSD == object_xy" );
     }
//то есть здесь программа должна понимать, что это переменная object_EURUSDGBPUSD 
  }
//+------------------------------------------------------------------+

내가 당신을 올바르게 이해한다면,

그런 다음 뭔가.

 
Ptichka12 : 안녕하세요, 브래킷이 나에게서 피를 마시고 있습니다. 나는 그녀를 커플로 만들 수 없습니다 (즉시 많은 오류가 발생합니다). 첫 번째 줄에 괄호.

이것은 디컴파일러입니까? 즉시 제거하십시오! 여기는 금지! 금지...

 
Ptichka12 :

안녕하세요, 브래킷은 나에게서 피를 마시고 있습니다. 나는 그것을 몇 개 만들 수 없습니다 (즉시 많은 오류가 발생합니다). 첫 번째 줄에 괄호.


디컴파일된 코드를 게시하면 경고를 받습니다.
 
Artyom Trishkin :
디컴파일된 코드를 게시하면 경고를 받습니다.

미안, 안할게...

 
Alexey Viktorov : 완전히 다시 작성해야 합니다. 그리고 누가 필요합니까???

고맙습니다)
다시 쓰지 않기 위해 >=100pp인 세그먼트에 추세선 을 적용할 수 있습니다.

아래에서 위로 지그재그로 만들기 위해 추세선의 포인트 좌표를 설정하는 방법을 알려주세요 -a.

 

안녕하세요!

나는 배열의 가격으로 지금 그러한 주문이 있는지 여부를 확인하는 스크립트를 2주 동안 생각해 냈습니다....

이제 배열에서 검색을 우연히 발견했습니다. 어떤 이유에서인지 예상대로 생성되지 않습니다.


 int start()
{
   while (! IsStopped ())
    {    
       double prmas[ 5 ] = { 11 , 22 , 33 , 44 , 99 }; // Будем проверять каждую цену, есть ли ордер с такой ценой или нет
         for ( int ordsel= 0 ; ordsel<= 4 ;ordsel++) {   // Цикл прохода по ценам в массиве
             for ( int nmbr = 0 ; nmbr < OrdersTotal () ;nmbr++) {   // Проверяем каждую цену по всем ордерам
               int os = OrderSelect (nmbr, SELECT_BY_POS , MODE_TRADES ); // Выбираем ордер по порядку цикла
               int maspos = ArrayBsearch (prmas, OrderOpenPrice (), 5 , 0 , MODE_ASCEND ); //Ищем позицию цены в массиве по текущему проверяемому ордеру
               Alert ( "Номер в цикле  " , nmbr, " Выбранный ордер  " , os, " Цена из массива " , prmas[maspos]); //Выводим скорбный результат
               Sleep ( 10000 );  
      }
}
     if (! IsExpertEnabled ()) break ;
    }
return (nmbr);
}

주지 않는다...

명령:



 
Dimitry-1983 :

안녕하세요!

나는 배열의 가격으로 지금 그러한 주문이 있는지 여부를 확인하는 스크립트를 2주 동안 생각해 냈습니다....

이제 배열에서 검색을 우연히 발견했습니다. 어떤 이유에서인지 예상대로 생성되지 않습니다.


그는 모든 것이 정확합니다.

ArrayBsearch

반환 값

발견된 첫 번째 요소의 인덱스를 반환합니다. 검색 값을 찾을 수 없으면 검색 값이 있는 요소 중 가장 낮은 값의 인덱스를 반환합니다.

주문 가격(발행 시점별 주문)
처음 11,000000
두 번째 22.00000
세 번째 0.98020
네 번째 0.98004
다섯 번째 33.00000

각각 1, 2 및 5는 올바르게 찾고 2와 3의 경우 가장 가까운 작은 값을 찾습니다...