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

 
001 :

컴파일러의 논리를 이해할 수 없습니다. 기능이 있습니다. 외부 변수를 선언합니다.

정수 시작;

그런 다음 함수의 본문

더블 B()
{

정수 i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=거짓) {
(주문 유형()==OP_SELL) {
if( OrderProfit()< 0) {시작=1;}

}

}

}

}

시작 변수의 값이 기억 되어야 하고 필요할 때 0과 같아야 합니다. 여기서 OrderProfit()<0 이면 시작=1이고 OrderProfit() > 0 이면 자동으로 시작=0입니다.

아니요

OrderProfit() > 0이면 변수에 있던 내용이 그대로 유지됩니다.

 
Tantrik :
어디서 찾을 수 있는지 알려주실 수 있나요? 모든 것이 영어로 되어 있습니다.
MetaEditor를 러시아어로 구성할 수 없는 경우 문서 링크를 사용하십시오.
 
ilunga :

아니요

OrderProfit() > 0이면 변수에 있던 내용이 그대로 유지됩니다.


다음은 기능입니다.

//+----------------------------------------------- --------------------+
이중 균형()
{

정수 i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
//------------------------------------------------ ----------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=거짓) {
(주문 유형()==OP_SELL) {
if(OrderProfit()<0) {시작=참;}
}
}

//------------------------------------------------ -----------
}
인쇄("시작=", 시작);
if(lots<0.01) lots=0.01;
lot=NormalizeDouble(lots,2);
반환(많은);
}
//+----------------------------------------------- --------------------+

여기 로그가 있습니다.

16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: 오픈 #1 매도 0.01 GBPUSD에서 2.03190 tp: 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: 마감 #1 매도 0.01 GBPUSD에서 2.03190 tp: 2.03100 가격 2.03210
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: 오픈 #2 매도 0.01 GBPUSD에서 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: 마감 #2 2.02860 tp: 2.02770 가격 2.02890에서 0.01 GBPUSD 매도
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: 오픈 #3 매도 0.01 GBPUSD에서 2.03640 tp: 2.03550 확인
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: 마감 #3 매도 0.01 GBPUSD에서 2.03640 tp: 2.03550 가격 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: 오픈 #4 매도 0.01 GBPUSD에서 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: 마감 #4 2.04880 tp: 2.04790 가격 2.05430에서 0.01 GBPUSD 매도
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: 오픈 #5 매도 0.01 GBPUSD에서 2.05140 tp: 2.05050 확인
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: 마감 #5 매도 0.01 GBPUSD에서 2.05140 tp: 2.05050 가격 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: 오픈 #6 매도 0.01 GBPUSD에서 2.04840 tp: 2.04750 확인
16:01:36 2007.07.19 17:33 테스터: 2.04750(2.04760 / 2.04790)에서 이익을 취 하십시오. #6
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: 오픈 #7 매도 0.01 GBPUSD에서 2.04810 tp: 2.04720 확인
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: 종가 #7 매도 0.01 GBPUSD에서 2.04810 tp: 2.04720 가격 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: 오픈 #8 매도 0.01 GBPUSD에서 2.06160 tp: 2.06070 확인
16:01:36 2007.07.25 02:12 테스터: 2.06070(2.06040 / 2.06070)에서 이익을 취하십시오. #8
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: 시작= 0

 
001 :


다음은 기능입니다.

//+----------------------------------------------- --------------------+
이중 균형()
{

정수 i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
//------------------------------------------------ ----------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=거짓) {
(주문 유형()==OP_SELL) {
if(OrderProfit()<0) {시작=참;}
}
}

//------------------------------------------------ -----------
}
인쇄("시작=", 시작);
if(lots<0.01) lots=0.01;
lot=NormalizeDouble(lots,2);
반환(많은);
}
//+----------------------------------------------- --------------------+

여기 로그가 있습니다.

16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: 오픈 #1 매도 0.01 GBPUSD에서 2.03190 tp: 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: 마감 #1 매도 0.01 GBPUSD에서 2.03190 tp: 2.03100 가격 2.03210
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: 오픈 #2 매도 0.01 GBPUSD에서 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: 마감 #2 2.02860 tp: 2.02770 가격 2.02890에서 0.01 GBPUSD 매도
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: 오픈 #3 매도 0.01 GBPUSD에서 2.03640 tp: 2.03550 확인
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: 마감 #3 매도 0.01 GBPUSD에서 2.03640 tp: 2.03550 가격 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: 오픈 #4 매도 0.01 GBPUSD에서 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: 마감 #4 2.04880 tp: 2.04790 가격 2.05430에서 0.01 GBPUSD 매도
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: 오픈 #5 매도 0.01 GBPUSD에서 2.05140 tp: 2.05050 확인
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: 마감 #5 매도 0.01 GBPUSD에서 2.05140 tp: 2.05050 가격 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: 오픈 #6 매도 0.01 GBPUSD에서 2.04840 tp: 2.04750 확인
16:01:36 2007.07.19 17:33 테스터: 2.04750(2.04760 / 2.04790)에서 이익을 취하십시오. #6
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: 오픈 #7 매도 0.01 GBPUSD에서 2.04810 tp: 2.04720 확인
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: 종가 #7 매도 0.01 GBPUSD에서 2.04810 tp: 2.04720 가격 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: 시작= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: 오픈 #8 매도 0.01 GBPUSD에서 2.06160 tp: 2.06070 확인
16:01:36 2007.07.25 02:12 테스터: 2.06070(2.06040 / 2.06070)에서 이익을 취하십시오. #8
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: 시작= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: 시작= 0

더 완전한 코드를 보여줍니다. 예를 들어, 이제 이 변수가 선언된 위치를 볼 수 없습니다.

 
ilunga :

더 완전한 코드를 보여줍니다. 예를 들어, 이제 이 변수가 선언된 위치를 볼 수 없습니다.


외부 int TF;
외부 int TP;
extern int 바;
extern int BarrierMinute;
외부 intStep=0;
//--------
외부 이중 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
extern 이중 감소 = 2;
extern int 대기 = 2;
extern int 반복;
extern int MA_Sell;
extern int Applied_Price_Sell;
//외부 정수 MAPeriod_1;
//extern int Calc=8;
외부 이중 로트=5;
//----
정적 정수 PrevTime=0;
이중 로트;
int 대기, 시작 , 단계, 반복;
날짜 시간 openTime = 0;
이중 로트 = 0.1;
 
세르고반 26.01.2012 07:27 | 금지 편집 | 삭제

안녕하세요, EA의 OP_BUYSTOP 및 OP_SELLSTOP 주문을 OP_SELLLIMIT 및 OP_BUYLIMIT로 대체하는 방법을 알려주실 수 있습니까 ???


첨부 파일:
Expertd10.mq4 (5.82KB) 제거
 

안녕 친구들! 문제 해결을 도와주세요!?

저는 소프트웨어 정지 손실이 있는 Expert Advisor를 쓰고 있습니다. 알고리즘의 기본 체계는 다음과 같습니다.


정수 시작()
{이중 x, PreviousProfit, CurrentProfit;
for (x=0; x<1; x++) //For 루프 연산자(이론적으로)는 1번 실행되어야 합니다.
{PreviousProfit=(-20);}//이론적으로는 항상 값을 1번 할당합니다!

CurrentProfit=OrderProfit();//선택한 주문의 이익을 찾습니다.
if (PreviousProfit<CurrentProfit)//현재 이익이 이전 이익보다 크면...
{PrevProfit=CurrentProfit;}// 변수 PrevProfit에 새 값을 할당합니다!
//저것. "PreviousProfit" 변수는 항상 이익의 최대값을 포함해야 합니다!
}


캐치는 변수 "x"의 값이 새 틱으로 재설정되고 변수 "PreviousProfit" 의 값 (-20)이 새 틱마다 할당된다는 것입니다! 저것. 알고리즘의 요점이 사라집니다! 그리고 변수 PrevProfit은 주문이 마감될 때 이 값을 강제로 "재설정"할 때까지 주문 이익의 최대값을 영구적으로 유지하도록 고안되었습니다.

실수는 어디에 있습니까? 이 작업에 대한 다른 솔루션이 있습니까? 미리 감사드립니다!

 
bis :

캐치는 변수 "x"의 값이 새 틱으로 재설정되고 변수 "PreviousProfit"의 값(-20)이 새 틱마다 할당된다는 것입니다! 저것. 알고리즘의 요점이 사라집니다! 그리고 변수 PrevProfit은 주문이 마감될 때 이 값을 강제로 "재설정"할 때까지 주문 이익의 최대값을 영구적으로 유지하도록 고안되었습니다.

실수는 어디에 있습니까? 이 작업에 대한 다른 솔루션이 있습니까? 미리 감사드립니다!

https://docs.mql4.com/en/basis/variables/static 참조
 
FAQ :
세르고반 26.01.2012 07:27 | 금지 편집 | 삭제

안녕하세요, EA의 OP_BUYSTOP 및 OP_SELLSTOP 주문을 OP_SELLLIMIT 및 OP_BUYLIMIT로 대체하는 방법을 알려주실 수 있습니까 ???


Expertd10.mq4 (5.82KB) 제거


Bid 및 Ask가 변경되었을 때 잊으셨습니까?
 

전략 테스터 에서 표준 지표를 표시하는 방법을 아는 사람이 있습니까?