나는 당신의 발보 전체를 보지 않았습니다(입력 필드 위의 상단에 있는 SRC 버튼을 사용하여 그것을 부착해야 함) - 페이지 전체에 퍼져 있는 코드를 찔러보는 것이 불쾌하지만 가장 먼저 눈을 사로잡은 것은 바로 for(i=0; i< OrdersTotal() ; i++) 줄이었습니다. 닫으려면 역방향 루프를 사용해야 합니다. for(i= OrdersTotal()-1 ; i >=0 ; i -- )
모두를 환영합니다! 어드바이저를 진정시키는 방법을 알려주세요 . 시장 진입 조건이 발생하면 "주문이 성공했습니다!"라는 로그 파일에 쓰기 시작합니다. 이 작업을 1분에 수십 번 수행하며 그 결과 로그 파일이 엄청나게 커집니다. 몇시간동안 매달릴 수 있으니 포즈가 닫힐때까지 안쓰고 한번만 쓰게 만드는법...
Allis : 모두를 환영합니다! 어드바이저를 진정시키는 방법을 알려주세요. 시장 진입 조건이 발생하면 "주문이 성공했습니다!"라는 로그 파일에 쓰기 시작합니다. 이 작업을 1분에 수십 번 수행하며 그 결과 로그 파일이 엄청나게 커집니다. 몇시간동안 매달릴 수 있으니 포즈가 닫힐때까지 안쓰고 한번만 쓰게 만드는법...
안녕하세요 알리스 입니다! 틱으로 읽지 않는 곳에 인쇄를 등록해야 합니다! 오류가 있으면 출력해서 내고, 뜨면 펼친 일기장에 1회만 써줍니다!
일반적으로 고정된 시간 범위가 아니라 시간 범위가 있어야 합니다. 가치. 당신의 논리는 전혀 옳지 않습니다. 1시간이나 3시간이 아니라 1시간에서 3시간!!!음, 우선 필요한 곳에 대괄호를 삽입하는 데 익숙해지십시오. 그런 것:
안녕하세요! 명령(있는 경우), 0 또는 1 중 임의의 숫자 선택을 알려주세요. 미리 감사드립니다.
Expert Advisor를 테스트할 때 코드 실행 오류가 드러났습니다.
- 루프 연산자 for(i=0;i<OrdersTotal();i++)의 실행은 다음 틱에 의해 중단됩니다(아래에 굵은 글꼴로 강조 표시됨).
- 구매 주문은 무작위로 선택되어 마감됩니다.
원인을 찾고 해결하는 방법을 알려주실 수 있나요?
프로그램 코드와 테스터 로그의 보고서가 제공됩니다.
프로그램 코드.
//+----------------------------------------------- --------------------+
//| 폴리곤1.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//|루프 문을 테스트합니다. |
//+----------------------------------------------- --------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#속성 링크 ""
//+----------------------------------------------- --------------------+
//|선언된 변수 |
//+----------------------------------------------- --------------------+
int Mn=357;//매직넘버
int i; //반복 카운터 표시자
이중 PriTP;//TP 시리즈
int 틱; // 틱 카운터
//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----주문 설정
OrderSend(Symbol(),OP_BUY,0.5,Ask,0,Bid-350*Point,Ask+350*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,1,Ask,0,Bid-250*Point,Ask+250*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,1.5,Ask,0,Bid-150*Point,Ask+150*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,2.5,Ask,0,Bid-150*Point,Ask+150*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,3.5,Ask,0,Bid-150*Point,Ask+150*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUYLIMIT,1,Ask-150*Point,0,Bid-400*Point,
Ask+250*포인트,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_SELLSTOP,3,Ask-300*Point,0,Bid+150*Point,
Ask-750*포인트,NULL,Mn,0,CLR_NONE);//
//----
PriTP=입찰;//PriTP
Print("Kc0:"," OrdersTotal=",OrdersTotal());//메시지
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
//----틱 카운터
틱++;//틱
//----구매 주문 닫기
for(i=0;i<OrdersTotal();i++)//루프 초기화
{
Print("X1:"," Tick=",Tick," i=",i);//메시지
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)//주문 i 선택
{
if(OrderSymbol()==Symbol())//기호
{
if(OrderMagicNumber()==Mn)//식별번호
{
if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)//현재 선택한 주문의 작업 유형
{
OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);//닫기 위치
}//닫기 if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)
}//닫힘 if(OrderMagicNumber()==Mn)
}//닫힘 if(OrderSymbol()==Symbol()
}//닫힌 경우(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
}//(i=0;i<OrdersTotal();i++)에 대해 닫힘
//----
리턴(0);
}
테스터 로그의 항목입니다.
2013.03.01 12:12:57 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=5 i=1
2013.03.01 12:12:57 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =5 i=0
2013.03.01 12:12:33 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=4 i=1
2013.03.01 12:12:33 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =4 i=0
2013.03.01 12:12:09 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: Tick=3 i=1
2013.03.01 12:12:09 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #4 매수 2.50 EURUSD에서 1.25773 sl: 1.25616 tp: 1.25923 가격 1.2
2013.03.01 12:12:09 2012.09.03 00:00 Poligon1 EURUSD,M15: Kc1: 틱 =3 i=0
2013.03.01 12:11:45 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=2 i=2
2013.03.01 12:11:45 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=2 i=1
2013.03.01 12:11:45 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #2 매수 1.00 EURUSD at 1.25773 sl: 1.25516 tp: 1.66023 at price81.2
2013.03.01 12:11:45 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =2 i=0
2013.03.01 12:11:21 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=1 i=3
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: #5 매수 3.50 EURUSD에서 1.25773 sl: 1.25616 tp: 1.66923 가격 1.2
2013.03.01 12:11:21 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=1 i=2
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #3 매수 1.50 EURUSD에서 1.25773 sl: 1.25616 tp: 1.66923 가격 1.2
2013.03.01 12:11:21 2012.09.03 00:00 폴리곤1 EURUSD,M15: Кс1: 틱=1 i=1
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #1 매수 0.50 EURUSD에서 1.25773 sl: 1.25416 tp: 1.66123 가격 1.2
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =1 i=0
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс0: OrdersTotal=7
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #7 매도 스톱 3.00 EURUSD at 1.25473 sl: 1.25916 tp: 1.25023 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #6 매수 제한 1.00 EURUSD at 1.25623 sl: 1.25366 tp: 1.26023 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #5 매수 3.50 EURUSD at 1.25773 sl: 1.25616 tp: 1.25923 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #4 매수 2.50 EURUSD at 1.25773 sl: 1.25616 tp: 1.25923 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #3 매수 1.50 EURUSD at 1.25773 sl: 1.25616 tp: 1.25923 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #2 매수 1.00 EURUSD at 1.25773 sl: 1.25516 tp: 1.26023 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #1 매수 0.50 EURUSD at 1.25773 sl: 1.25416 tp: 1.26123 ok
2013.03.01 12:11:21 폴리곤1 테스트 시작
2013.03.01 12:11:21 Polagon1 EURUSD,M15: 성공적으로 로드됨
감사합니다. 쉬르킨
Expert Advisor를 테스트할 때 코드 실행 오류가 드러났습니다.
- 루프 연산자 for(i=0;i<OrdersTotal();i++)의 실행은 다음 틱에 의해 중단됩니다(아래에 굵은 글꼴로 강조 표시됨).
- 구매 주문은 무작위로 선택되어 마감됩니다.
감사합니다. 쉬르킨
1. init() 함수에서 주문을 열 수 없습니다.(테스터에서는 계속 작동하지만 데모에서는 작동하지 않습니다)
2. 주문을 마감할 때 처음부터 끝까지 계산해야 하며 그 반대의 경우도 마찬가지입니다.
Expert Advisor를 테스트할 때 코드 실행 오류가 드러났습니다.
- 루프 연산자 for(i=0;i<OrdersTotal();i++)의 실행은 다음 틱에 의해 중단됩니다(아래에 굵은 글꼴로 강조 표시됨).
- 구매 주문은 무작위로 선택되어 마감됩니다.
원인을 찾고 해결하는 방법을 알려주실 수 있나요?
프로그램 코드와 테스터 로그의 보고서가 제공됩니다.
프로그램 코드.
//+----------------------------------------------- --------------------+
//| 폴리곤1.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//|루프 연산자를 테스트합니다. |
//+----------------------------------------------- --------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#속성 링크 ""
//+----------------------------------------------- --------------------+
//|선언된 변수 |
//+----------------------------------------------- --------------------+
int Mn=357;//매직넘버
int i; //반복 카운터 표시자
이중 PriTP;//TP 시리즈
int 틱; // 틱 카운터
//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----주문 설정
OrderSend(Symbol(),OP_BUY,0.5,Ask,0,Bid-350*Point,Ask+350*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,1,Ask,0,Bid-250*Point,Ask+250*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,1.5,Ask,0,Bid-150*Point,Ask+150*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,2.5,Ask,0,Bid-150*Point,Ask+150*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUY,3.5,Ask,0,Bid-150*Point,Ask+150*Point,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_BUYLIMIT,1,Ask-150*Point,0,Bid-400*Point,
Ask+250*포인트,NULL,Mn,0,CLR_NONE);//
OrderSend(Symbol(),OP_SELLSTOP,3,Ask-300*Point,0,Bid+150*Point,
Ask-750*포인트,NULL,Mn,0,CLR_NONE);//
//----
PriTP=입찰;//PriTP
Print("Kc0:"," OrdersTotal=",OrdersTotal());//메시지
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
//----틱 카운터
틱++;//틱
//----구매 주문 닫기
for(i=0;i<OrdersTotal();i++)//루프 초기화
{
Print("X1:"," Tick=",Tick," i=",i);//메시지
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)//주문 i 선택
{
if(OrderSymbol()==Symbol())//기호
{
if(OrderMagicNumber()==Mn)//식별번호
{
if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)//현재 선택한 주문의 작업 유형
{
OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);//닫기 위치
}//닫기 if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)
}//닫힘 if(OrderMagicNumber()==Mn)
}//닫힘 if(OrderSymbol()==Symbol()
}//닫힌 경우(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
}//(i=0;i<OrdersTotal();i++)에 대해 닫힘
//----
리턴(0);
}
테스터 로그의 항목입니다.
2013.03.01 12:12:57 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=5 i=1
2013.03.01 12:12:57 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =5 i=0
2013.03.01 12:12:33 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=4 i=1
2013.03.01 12:12:33 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =4 i=0
2013.03.01 12:12:09 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: Tick=3 i=1
2013.03.01 12:12:09 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #4 매수 2.50 EURUSD에서 1.25773 sl: 1.25616 tp: 1.25923 가격 1.2
2013.03.01 12:12:09 2012.09.03 00:00 Poligon1 EURUSD,M15: Kc1: 틱 =3 i=0
2013.03.01 12:11:45 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=2 i=2
2013.03.01 12:11:45 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=2 i=1
2013.03.01 12:11:45 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #2 매수 1.00 EURUSD at 1.25773 sl: 1.25516 tp: 1.66023 at price81.2
2013.03.01 12:11:45 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =2 i=0
2013.03.01 12:11:21 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=1 i=3
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: #5 매수 3.50 EURUSD에서 1.25773 sl: 1.25616 tp: 1.66923 가격 1.2
2013.03.01 12:11:21 2012.09.03 00:00 폴리곤1 EURUSD,M15: Kc1: 틱=1 i=2
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #3 매수 1.50 EURUSD에서 1.25773 sl: 1.25616 tp: 1.66923 가격 1.2
2013.03.01 12:11:21 2012.09.03 00:00 폴리곤1 EURUSD,M15: Кс1: 틱=1 i=1
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 마감 #1 매수 0.50 EURUSD에서 1.25773 sl: 1.25416 tp: 1.66123 가격 1.2
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс1: 틱 =1 i=0
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: Кс0: OrdersTotal=7
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #7 매도 스톱 3.00 EURUSD at 1.25473 sl: 1.25916 tp: 1.25023 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #6 매수 제한 1.00 EURUSD at 1.25623 sl: 1.25366 tp: 1.26023 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #5 매수 3.50 EURUSD at 1.25773 sl: 1.25616 tp: 1.25923 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #4 매수 2.50 EURUSD at 1.25773 sl: 1.25616 tp: 1.25923 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #3 매수 1.50 EURUSD at 1.25773 sl: 1.25616 tp: 1.25923 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #2 매수 1.00 EURUSD at 1.25773 sl: 1.25516 tp: 1.26023 ok
2013.03.01 12:11:21 2012.09.03 00:00 Poligon1 EURUSD,M15: 오픈 #1 매수 0.50 EURUSD at 1.25773 sl: 1.25416 tp: 1.26123 ok
2013.03.01 12:11:21 폴리곤1 테스트 시작
2013.03.01 12:11:21 Polagon1 EURUSD,M15: 성공적으로 로드됨
감사합니다. 쉬르킨
정수 x = MathRand() % 2;
그리고 갑자기 다른 숫자가 아닌 0 또는 1을 반환하는 이유는 무엇입니까? 결국, 도움말에 따르면 MathRand () 함수 는 0에서 32767 사이의 의사 난수 정수를 반환합니다.
그리고 갑자기 다른 숫자가 아닌 0 또는 1을 반환하는 이유는 무엇입니까? 결국, 도움말에 따르면 MathRand () 함수 는 0에서 32767 사이의 의사 난수 정수를 반환합니다.
이것은 나눗셈의 나머지입니다 ! 산술 연산과 인쇄물을 살펴보십시오!
붙여넣으면 두 개의 결과만 번갈아 나타납니다.
모두를 환영합니다! 어드바이저를 진정시키는 방법을 알려주세요. 시장 진입 조건이 발생하면 "주문이 성공했습니다!"라는 로그 파일에 쓰기 시작합니다. 이 작업을 1분에 수십 번 수행하며 그 결과 로그 파일이 엄청나게 커집니다. 몇시간동안 매달릴 수 있으니 포즈가 닫힐때까지 안쓰고 한번만 쓰게 만드는법...