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

 
double MarketInfo ( string symbol, int type) 

이것은 도움말에서 가져온 것이지만 어드바이저가 작동하는 기호만 "감시"하기 위해 기호로 NULL을 사용할 수 있습니까?

동일한 유형의 여러 Expert Advisor가 다른 쌍에 대해 계획되어 있다는 것입니다.

예를 들면 다음과 같습니다.

 MarketInfo ( NULL ,MODE_ASK)
 
moskitman :

이것은 도움말에서 가져온 것이지만 어드바이저가 작동하는 기호만 "감시"하기 위해 기호로 NULL을 사용할 수 있습니까?

예를 들면 다음과 같습니다.

NULL은 다음과 같이 전달되지 않습니다.

그러나 Symbol() 은 작동합니다 =)

 

안녕하세요. 질문은 다음과 같습니다. MQL4에 있는 MQL 4 에서. 커뮤니티 "Simple MQL Programs " 장, "Simple Expert Advisor" 섹션에 tradingexpert.mq4 Expert Advisor의 예가 있습니다. 다음 내용(첨부파일 참조). 블록 1-2에서 외부 변수 extern double StopLoss 가 선언되었습니다. = 200외부 더블 이익을 취하다 = 39 . 블록 8-9에서 SLTP 매개변수를 계산하기 위해 함수 호출 New _ Stop ( StopLoss )New _ Stop ( TakeProfit ) 사용됩니다. 블록 11-12에는 기능에 대한 설명이 있습니다.

질문 : New _ Stop 함수 의 형식 매개변수int ( int 매개변수 ), 매개변수가 함수 호출에서 전달되는 동안 New _ Stop ( StopLoss ) ( New _ Stop ( TakeProfit ) ) 유형은 double ... MQL4에 있는 MQL 4 책에서. "함수" 섹션의 "언어의 기초" 장의 "함수 속성" 하위 섹션에 다음과 같이 나와 있습니다 . " 함수 호출에서 전달된 매개변수의 번호, 유형 및 순서는 숫자와 일치해야 합니다 . 함수 설명에 지정된 형식 매개변수의 순서(예외는 기본 매개변수가 있는 함수 호출입니다. 함수 호출 및 함수 설명 참조 및 연산자 반환 ". 이 모순을 설명하는 방법: 결국 후자에 따라) , StopLossTakeProfit 변수를 선언할 때 double이 아닌 int 유형을 지정해야 했습니다 ( 컴파일러에서 오류가 발생하지 않음).

포럼을 어지럽히지 않기 위해 답변에 미리 감사드립니다.

파일:
 

안녕, 말해봐 ... 인터넷의 바닥을 삽질했고 정보가 다릅니다.

고문의 본질은 다양한 도구에 대한 입장을 여는 것입니다. "실제"가 작동하고 현재 가격을 보여주지만 기록을 통해 실행할 수 없습니다... 함수는 0을 반환합니다.

예를 들어 EURUSD 및 EURCHF의 두 가지 통화에 대한 현재 견적을 표시해야 합니다.

함수를 사용하여 현재 견적을 호출합니다(EURUSD 차트가 활성화된 상태에서 기록을 실행합니다).

MarketInfo("EURUSD",MODE_BID) ---> 현재 가격 가져오기

MarketInfo("EURCHF ",MODE_BID) ---> null 반환

이 포럼에서 MarketInfo가 기록에서 작동하지 않는다는 정보를 찾았습니다. "iClose"를 사용하세요.

그러나 인용 기능을 호출할 때도

iClose("EURUSD",PERIOD_M1,0) ---> 현재 가격 가져오기

iClose("EURCHF",PERIOD_M1,0) ---> 0 반환

전략 테스터 에서 다른 도구에 대한 현재 견적을 다른 방법으로 얻을 수 있습니까? 감사해요

 
faton :

MT4 테스터는 다중 통화가 아닙니다. 즉, 단일 통화 Expert Advisor만 테스트할 수 있습니다.

 
moskitman :

MT4 테스터는 다중 통화가 아닙니다. 즉, 단일 통화 Expert Advisor만 테스트할 수 있습니다.


고맙습니다
 
faton :

고맙습니다

보다 정확하게는 하나의 도구에서 테스트하고 다른 도구를 사용하여 분석할 수 있습니다.
 
sergeev :


도와 주셔서 감사합니다!))
 
DhP :

또는 다음과 같은 것:

답변 감사합니다!! 많은 도움이 되었습니다!
 
7777877 :

안녕하세요. 질문은 다음과 같습니다. MQL4에 있는 MQL 4 에서. 커뮤니티 "Simple Expert Advisor" 섹션의 " Simple MQL Programs" 장에 tradingexpert.mq4 Expert Advisor의 예가 있습니다. 다음 내용(첨부파일 참조). 블록 1-2에서 외부 변수 extern double StopLoss 가 선언되었습니다. = 200외부 더블 이익을 취하다 = 39 . 블록 8-9에서 SLTP 매개변수를 계산하기 위해 함수 호출 New _ Stop ( StopLoss )New _ Stop ( TakeProfit ) 사용됩니다. 블록 11-12에는 기능에 대한 설명이 있습니다.

질문 : New _ Stop 함수의 형식 매개변수는 int ( int 매개변수 ), 매개변수가 함수 호출에서 전달되는 동안 New _ Stop ( StopLoss ) ( New _ Stop ( TakeProfit ) ) 유형은 double ... MQL4에 있는 MQL 4 책에서. "함수" 섹션의 "언어의 기초" 장의 "함수 속성" 하위 섹션에 다음과 같이 나와 있습니다 . " 함수 호출에서 전달된 매개변수의 번호, 유형 및 순서는 숫자와 일치해야 합니다 . 함수 설명에 지정된 형식 매개변수의 순서(예외는 기본 매개변수가 있는 함수 호출입니다. 함수 호출 및 함수 설명 참조 및 연산자 반환 ". 이 모순을 설명하는 방법: 결국 후자에 따라) , StopLossTakeProfit 변수를 선언할 때 double이 아닌 int 유형을 지정해야 했습니다 ( 컴파일러에서 오류가 발생하지 않음).

포럼을 어지럽히지 않기 위해 답변에 미리 감사드립니다.

외부 매개변수(extern double StopLoss =200; extern double TakeProfit =39; )는 원칙적으로 정수 유형이어야 합니다(더 정확하게는 저자의 생각에 따르면 이것은 포인트 단위의 값입니다). 함수를 호출할 때 암시적 형식 변환이 사용됩니다. 부동 소수점 유형은 정수로 다운캐스트 됩니다. 이 경우에는 중요하지 않습니다. 스톱 및 이익의 크기는 항상 정수인 핍으로 설정됩니다.

IMHO, 예제 코드는 보기 흉하게 작성되었습니다.

상수의 절대값을 사용하는 것은 니모닉 이름이 있을 때 매우 나쁘고 잘못된 스타일입니다.

         if ( OrderType ()> 1 )                     // Попался отложенный
           {
 

정렬 순서 구현의 최악의 변형: 더 "느린" 것을 생각하기 어렵습니다. 마치 의도적으로 브레이크를 추가하는 것처럼 추가 계산, 불필요한 함수 호출 - 가장 시간이 많이 걸리는 작업, 심지어 루프의 각 반복에서도. 그리고 이것은 주문 수가 사이클 내에서 변경되지 않는다는 사실에도 불구하고.

   for ( int i= 1 ; i<= OrdersTotal (); i++)           // Цикл перебора ордер
     {
       if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров: