MetaEditor에는 프로그램 생성 템플릿의 텍스트 파일이 있습니다. 프로그램을 생성할 때 마법사에서 사용합니다. 템플릿의 텍스트는 생성되는 프로그램 파일 유형의 매개변수를 지정합니다. 코드 텍스트에 나타나지 않는 옵션과 태그 사이에 태그가 있습니다. 그러나 터미널은 어떻게 든 그들을 인식합니다. Expert Advisor가 생성되면 다음 틱이 도착한 후 시작 기능이 실행되고, 표시기이면 틱 없이 시작 기능이 실행됩니다. 태그와 그 안의 모든 것은 어디로 가나요?
string CrossName [];int numCross =0;//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init (){string sectionName ="common";
numCross = ReadIniInteger ( config_path , sectionName ,"numCross",0);ArrayResize( CrossName , numCross );
for (int i=0; i<numCross; i++) CrossName[i] = "-";
for(int i =0; i < numCross ; i ++){
sectionName =StringConcatenate("cross", i +1);
CrossName [ i ]= someFunc ( i +1);Print("init.1: CrossName[",( i +1),"]=", CrossName [ i ]);}Print("init.1: read complete");for( i =0; i < numCross ; i ++){Print("init.2: CrossName[",( i +1),"]=", CrossName [ i ]);}Print("-------------------------------");for( i =0; i < numCross ; i ++){
sectionName =StringConcatenate("cross", i +1);
CrossName [ i ]=StringSubstr( someFunc ( i +1),0,0);Print("init.3: CrossName[",( i +1),"]=", CrossName [ i ]);}Print("init.3: read complete");for( i =0; i < numCross ; i ++){Print("init.4: CrossName[",( i +1),"]=", CrossName [ i ]);}return(0);}//+------------------------------------------------------------------+string someFunc (int val ){string ReturnedString ="CROSS_"+ val ;return( ReturnedString );}//+------------------------------------------------------------------+
친애하는 전문가 여러분, 다음 질문에 답변해 주십시오.
MetaEditor에는 프로그램 생성 템플릿의 텍스트 파일이 있습니다. 프로그램을 생성할 때 마법사에서 사용합니다. 템플릿의 텍스트는 생성되는 프로그램 파일 유형의 매개변수를 지정합니다. 코드 텍스트에 나타나지 않는 옵션과 태그 사이에 태그가 있습니다. 그러나 터미널은 어떻게 든 그들을 인식합니다. Expert Advisor가 생성되면 다음 틱이 도착한 후 시작 기능이 실행되고, 표시기이면 틱 없이 시작 기능이 실행됩니다. 태그와 그 안의 모든 것은 어디로 가나요?
다리가 어디에서 자라는지 이해하기 위해 2가지 테스트를 더 했습니다.
1. ini에서 읽는 것은 문자열 배열이 아니라 별도의 변수로 읽습니다. 결과가 예상됩니다. 복사는 값이 아니라 참조입니다.
결과는 다음과 같습니다.
2009.04.10 14:31:42 example AUDUSD,H4: init.4: Cross_3=USDJPY
2009.04.10 14:31:42 example AUDUSD,H4: init.4: Cross_2=GBPUSD
2009.04.10 14:31:42 example AUDUSD,H4: init.4: Cross_1=EURUSD
2009.04.10 14:31:42 example AUDUSD,H4: init.3: read complete
2009.04.10 14:31:42 example AUDUSD,H4: init.3: Cross_3=USDJPY
2009.04.10 14:31:42 example AUDUSD,H4: init.3: Cross_2=GBPUSD
2009.04.10 14:31:42 example AUDUSD,H4: init.3: Cross_1=EURUSD
2009.04.10 14:31:42 example AUDUSD,H4: -------------------------------
2009.04.10 14:31:42 example AUDUSD,H4: init.2: Cross_3=USDJPY
2009.04.10 14:31:42 example AUDUSD,H4: init.2: Cross_2=USDJPY
2009.04.10 14:31:42 example AUDUSD,H4: init.2: Cross_1=USDJPY
2009.04.10 14:31:42 example AUDUSD,H4: init.1: read complete
2009.04.10 14:31:42 example AUDUSD,H4: init.1: Cross_3=USDJPY
2009.04.10 14:31:42 example AUDUSD,H4: init.1: Cross_2=GBPUSD
2009.04.10 14:31:42 example AUDUSD,H4: init.1: Cross_1=EURUSD
2. 문자열 배열을 반환했지만 ini에서 문자열 값을 읽는 대신
내부에서 win api에서 아무 것도 호출하지 않는 테스트 함수를 대체했습니다.
결과
2009.04.10 14:41:12 AUDUSD,H4 예시: init.4: CrossName[3]=CROSS_3
2009.04.10 14:41:12 AUDUSD,H4 예시: init.4: CrossName[2]=CROSS_2
2009.04.10 14:41:12 AUDUSD,H4 예시: init.4: CrossName[1]=CROSS_1
2009.04.10 14:41:12 예시 AUDUSD,H4: init.3: 읽기 완료
2009.04.10 14:41:12 AUDUSD,H4 예시: init.3: CrossName[3]=CROSS_3
2009.04.10 14:41:12 AUDUSD,H4 예시: init.3: CrossName[2]=CROSS_2
2009.04.10 14:41:12 AUDUSD,H4 예시: init.3: CrossName[1]=CROSS_1
2009.04.10 14:41:12 AUDUSD,H4 예시: -------------------------------------------
2009.04.10 14:41:12 AUDUSD,H4 예시: init.2: CrossName[3]=CROSS_3
2009.04.10 14:41:12 AUDUSD,H4 예시: init.2: CrossName[2]=CROSS_2
2009.04.10 14:41:12 AUDUSD,H4 예시: init.2: CrossName[1]=CROSS_1
2009.04.10 14:41:12 예시 AUDUSD,H4: init.1: 읽기 완료
2009.04.10 14:41:12 AUDUSD,H4 예시: init.1: CrossName[3]=CROSS_3
2009.04.10 14:41:12 AUDUSD,H4 예시: init.1: CrossName[2]=CROSS_2
2009.04.10 14:41:12 AUDUSD,H4 예시: init.1: CrossName[1]=CROSS_1
걸림돌이 캐스트에서 가장 가능성이 있음을 보여주었습니다.
어떻게 되어야 합니까? 논리적으로 나는 신호 생성 전에 ORDtype을 결정하려고 생각했습니다. 그렇지 않으면 거래 기준에서 고려되는 방법. 그리고 또 하나의 걸림돌 - 빈 기록이 있어도 위치가 열리지 않습니다((
나는 당신에게 개인적으로 대답했습니다 - 나는 그것이 더 생산적이라고 생각합니다.
바퀴를 재발명하지 않고 미리 만들어진 Martingale 거래 전문가 고문 중 한 명으로 시작하여 이 모든 것이 이미 구현된 방법을 확인하는 것이 훨씬 쉽습니다.
예를 들어 Universum 3.0
감사합니다. 전적으로 동의합니다. 모든 것이 오랫동안 발명되었습니다.
'포럼을 어지럽히지 않도록 모든 초보자 질문. 프로는 지나치지 않습니다. 너 없이는 어디에도 없어.'
덕분에
테스터에서 Expert Advisor를 테스트 할 때 init() 함수를 실행합니다.
EA의 init() 함수 내에서 여러 외부(외부) 변수의 값을 정규화하고 싶습니다.
이 정규화된(새) 값을 사용하여 start()에서 표시기를 호출합니다.
이 정규화를 start()에 포함하고 싶지 않습니다.
Strategy Tester에서 Expert Advisor를 최적화하는 동안 외부 변수가 변경될 때마다 init() 함수가 실행됩니까?테스터에서 Expert Advisor를 테스트할 때 init() 함수를 실행합니다.
EA의 init() 함수 내에서 여러 외부(외부) 변수의 값을 정규화하고 싶습니다.
이 정규화된(새) 값을 사용하여 start()에서 표시기를 호출합니다.
이 정규화를 start()에 포함하고 싶지 않습니다.
Strategy Tester에서 Expert Advisor를 최적화하는 동안 외부 변수가 변경될 때마다 init() 함수가 실행됩니까?그래 그럴거야
int start()
{
if (OrdersTotal() == 0
&& TimeDayOfWeek(TimeCurrent()) == 5
&& TimeHour(TimeCurrent()) == 12
&& TimeMinute(TimeCurrent()) == 30
&& TimeSeconds(TimeCurrent()) >= 00)
{
Alert("Тра ляля");
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"sell",999999,0,Red);
}
왜 주문이 열리지 않는지 아무도 알려주지 않습니까? 나는 왜 그 생각을 하지 못했는가?
그래서, 이것은... 우리는 금요일까지 기다려야 합니다. 이 분 동안 진드기가 있으면 열릴 것입니다.
그래서, 이것은... 우리는 금요일까지 기다려야 합니다. 이 분 동안 진드기가 있으면 열릴 것입니다.
그것이 내가 금요일이나 다른 요일에 하는 모든 일과 쓰레기입니다. 경고가 작동하고 주문이 열리지 않습니다.