[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 223

 
solnce600 :

여러분, 좋은 저녁입니다!

컴파일러가 아래 코드에서 그렇게 생각하는 이유를 알려주십시오.

변수 int 티켓이 정의되지 않았습니다.

하나의 오류가 발생합니다.

'티켓' - 변수가 정의되지 않음 C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (18, 6)

아래 코드의 할당문에도 Ticket 변수가 정의되어 있고 코드가 성공적으로 컴파일되지만

변수 int Ticket은 로컬이며 다음 틱에서 0으로 설정됩니다.
 
Vinin :


아마도 한 곳에 괄호만으로는 충분하지 않을 것입니다.

문제가 해결되었습니다. 감사합니다.
 
TarasBY :
변수 int Ticket은 로컬이며 다음 틱에서 0으로 설정됩니다.
참고했습니다. 감사합니다.
 

그런 문제에 직면했습니다.

3000개의 입찰가 값에 대해 이중 유형의 1차원 배열을 초기화해야 합니다.모든 값이 다르고 순서가 맞지 않습니다.

쉼표로 구분된 각 값에 수동으로 점수를 매기는 것은 현실적이지 않습니다.

엑셀로 해봤는데 부동소수점 자리에 점을 넣으면 엑셀이 숫자 사이에 쉼표를 넣어 읽지 않습니다.

최선의 선택을 알려주세요.


 

3개의 변수를 반환하고 start() 에 전달하는 간단한 Expert Advisor를 작성했습니다.

그런 다음 각 틱에서 이러한 데이터(객체 유형, price1 및 price2)가 반환되어야 합니다.

 //+-------------------------------------------------------------------------------------+
//|                                                TradingByLine.mq4                    |
//|                                                              hoz                    |
//|                                                                                     |
//+-------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link       ""

string objName;
int isObj,
    objType;
double price1,
       price2;

//+-------------------------------------------------------------------------------------+
//| Функция иницилизации                                                                |
//+-------------------------------------------------------------------------------------+
int init()
{

   

   return ( 0 );
}
//+-------------------------------------------------------------------------------------+
//| Функция деиницилизации                                                              |
//+-------------------------------------------------------------------------------------+
int deinit()
{
//----
   
//----
   return ( 0 );
}
//+-------------------------------------------------------------------------------------+
//| Блок поиска своих объектов                                                          |
//+-------------------------------------------------------------------------------------+
bool IsObjectFound( double & price1, double & price2, int & objType)
{
   for ( int obj= 0 ; obj<= ObjectsTotal ()- 1 ; obj++)
   {
      objName = ObjectName (obj);
      isObj = ObjectFind (objName);
      price1 = ObjectGet( "objName" , OBJPROP_PRICE1);
      price2 = ObjectGet( "objName" , OBJPROP_PRICE2);
      objType = ObjectType( "objName" );

       if (isObj != - 1 )
         return ( true );
   }
   return ( false );
}
//+-------------------------------------------------------------------------------------+
//| Функция start                                                                       |
//+-------------------------------------------------------------------------------------+
int start()
{
   if (!IsObjectFound(price1, price2, objType))
       return ( 0 );
   Print ( "objType = " , objType);
   Print ( "price1 = " , price1, ", price2 = " , price2);

   return ( 0 );
}

그런 다음 테스터의 시각화 모드에서 이 Expert Advisor를 실행하고 손으로 차트에 선을 그립니다. IsObjectFound() 함수에서 얻은 렌더 가격과 개체 유형이 올바르게 반환되지 않습니다. 다음은 로그 출력입니다.

 2013.03 . 16 20 : 12 : 46      2013.01 . 24 00 : 02   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 46      2013.01 . 24 00 : 02   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0
2013.03 . 16 20 : 12 : 46      2013.01 . 24 00 : 02   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0
2013.03 . 16 20 : 12 : 45      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: objType = - 1
2013.03 . 16 20 : 12 : 44      2013.01 . 24 00 : 01   TradingByLine EURJPY,M1: price1 = 0 , price2 = 0

선은 손으로 그려집니다. 즉, 유형 및 기타 매개변수가 있습니다.

라인

필수 매개변수가 반환되지 않는 이유는 무엇입니까?

 
solnce600 :

그런 문제에 직면했습니다.

3000개의 입찰가 값에 대해 이중 유형의 1차원 배열을 초기화해야 합니다.모든 값이 다르고 순서가 맞지 않습니다.

쉼표로 구분된 각 값에 수동으로 점수를 매기는 것은 현실적이지 않습니다.

엑셀로 해봤는데 부동소수점 자리에 점을 넣으면 엑셀이 숫자 사이에 쉼표를 넣어 읽지 않습니다.

최선의 선택을 알려주세요.


Excel은 읽을 수 있고, 어떻게 했는지 자세히 보여줄 수 있습니다.
 
hoz :

3개의 변수를 반환하고 start() 에 전달하는 간단한 Expert Advisor를 작성했습니다.

그런 다음 각 틱에서 이러한 데이터(객체 유형, price1 및 price2)가 반환되어야 합니다.

그런 다음 테스터의 시각화 모드에서 이 Expert Advisor를 실행하고 손으로 차트에 선을 그립니다. IsObjectFound() 함수에서 얻은 렌더 가격과 개체 유형이 올바르게 반환되지 않습니다. 다음은 로그 출력입니다.

선은 손으로 그려집니다. 즉, 유형 및 기타 매개변수가 있습니다.

필수 매개변수가 반환되지 않는 이유는 무엇입니까?

필요한

price1 = ObjectGet( "objName" , OBJPROP_PRICE1);
      price2 = ObjectGet( "objName" , OBJPROP_PRICE2);
      objType = ObjectType( "objName" );

따옴표가 없는 objName. 이것은 객체(문자열)의 이름을 포함하는 변수(프로그램 텍스트의 식별자)의 이름입니다.

 
alsu :

필요한

따옴표가 없는 objName. 이것은 객체(문자열)의 이름을 포함하는 변수(프로그램 텍스트의 식별자)의 이름입니다.



그건 그렇고, 문서는 다르게 생각합니다. 여기서 내가 혼란스러워졌다.

문서의 잼

 
alsu :

Excel은 읽을 수 있고, 어떻게 했는지 자세히 보여줄 수 있습니다.

첫 번째 숫자(즉, 가격) 뒤에 쉼표가 있는 줄에 100개의 값이 있습니다.

나는 선을 선택한다

홈 - 찾기 및 바꾸기

모든 쉼표를 점으로 변경합니다.

이제 값 사이에 쉼표를 넣어야 합니다.

셀 형식 선택

모든 형식

내 줄의 숫자 형식을 표시하는 활성 필드에서 - 끝에 쉼표를 넣습니다.

Excel에서 내가 입력한 형식을 처리할 수 없다고 말합니다.

 
hoz :


그건 그렇고, 문서는 다르게 생각합니다. 여기서 내가 혼란스러워졌다.

따옴표 안에는 변수 자체가 아니라 문자열 변수의 값이 있습니다!!!