[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 1127

 
drknn :
많은 도움 주셔서 감사합니다 =)
 
Alexandr24 :
많은 도움 주셔서 감사합니다 =)


테스터에서 표시기는 경고 창을 내보내지 않고 대신 경고 메시지를 로그에 씁니다. 그래도 스크립트를 사용하여 이러한 코드 조각을 디버그하는 것이 더 좋습니다. 더 빠르게 나타납니다.

그런데 이상하게도 인디케이터 메시지는 테스터 로그가 아니라 실시간 로그에 테스터에 기록됩니다.

 
테스터에서 고문을 테스트 할 때 수수료를 고려하는 방법은 무엇입니까?
 
테스터가 특정 브로커의 모든 설정을 사용하기 때문에 고려한 것 같습니다. 보다 정확하게는 검색이 알려줄 것입니다.
http://www.google.ru/search?as_sitesearch=mql4.com&as_q=%EA%EE%EC%E8%F1%F1%E8%FF+%E2+%F2%E5%F1%F2%E5%F0%E5
 
Abzasc :

"이마에" 문제가 해결되지 않았습니다.

이렇게 될 수 있을까

아니면 찾았다


감사하다!
 

조건이 어떻게 작동하는지 잘 이해하지 못합니다.

프랙탈 표시기가 어떻게 작동하는지, MODE_UPPER와 MODE_LOWER의 차이점을 분석하기로 결정하고 이러한 쓰레기를 작성했습니다.

정수 시작()
{int y;
y= WindowFirstVisibleBar();Alert("y",y);
(;y>=0;y--)
{ 더블 업=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y);
더블 다운=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
만약 (위쪽>=1||아래쪽>=1){
Alert("이전 상위 프랙탈:", up, " 이전 하위 프랙탈:", down);Alert("y",y);}}

WindowFirstVisibleBar()는 차트의 막대 수를 제공합니다. EA에서 if (up>=1||down>=1)을 삭제하면 이 기능이 작동하며 계산된 막대의 우수한 범위를 제공하지만 많은 그들을.

마치 || 부호 or, 연산자는 조건 중 하나 이상이 참이거나 둘 다 동시에 참이면 대괄호 x {}에 표시된 대로 하는 것 같습니다. 맞습니까?

달라진게 없어!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

다 제대로 쓰여진 것 같군요 도와주세요 !!!!!!!! 설명 !!!!!!

 
Dimka-novitsek :

조건이 어떻게 작동하는지 잘 이해하지 못합니다.

프랙탈 표시기가 어떻게 작동하는지, MODE_UPPER와 MODE_LOWER의 차이점을 분석하기로 결정하고 이러한 쓰레기를 작성했습니다.

정수 시작()
{int y;
y= WindowFirstVisibleBar();Alert("y",y);
(;y>=0;y--)
{ 더블 업=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y);
더블 다운=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
if (위쪽>=1||아래쪽>=1){
Alert("이전 상위 프랙탈:", up, " 이전 하위 프랙탈:", down);Alert("y",y);}}

WindowFirstVisibleBar()는 차트의 막대 수를 제공합니다. EA에서 if (up>=1||down>=1)을 삭제하면 이 기능이 작동하며 계산된 막대의 우수한 범위를 제공하지만 많은 그들을.

마치 || 부호 or, 연산자는 조건 중 하나 이상이 참이거나 둘 다 동시에 참이면 대괄호 x {}에 표시된 대로 하는 것 같습니다. 맞습니까?

달라진게 없어!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

다 제대로 쓰여진 것 같군요 도와주세요 !!!!!!!! 설명 !!!!!!



일반적으로 카운터 alt(M)를 통해 코드를 배치하면 느낌표 없이 더 빨리 답을 얻을 수 있습니다.
 
카운터 알토를 통해 - M - 그리고 더 자세히?
 
Dimka-novitsek :

마치 ||

https://docs.mql4.com/ru/basis/operations/bool

논리적 OR 연산.

위협 대응 - M - 버튼을 누르고 코드를 삽입하는 SRC와 같습니다.

 
drknn :

나는 당신이 나에게 제안한 코드를 비틀려고했습니다. 결과는 항상 동일합니다. 하루 종일 거래를 계속 엽니다. 켜기/끄기 기능을 유지하고 싶습니다.

다음은 시도되고 테스트된 옵션입니다.

extern 부울 WaitForNewDay = true;

무효 초기화()

{

SMB=기호();

반품;

}

무효 시작()

{

bool 거래=참;

if(WaitForNewDay){if(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)!=0) 거래=거짓;}

if(CalculateCurrentOrders(Symbol())==0 && 거래)

{CheckForOpen(); 반품;}

}

//------------------------------------------------ ------------------

int HistoryBuy(int MAGICMA)

{int BuyOrders=0;

(int i=OrdersHistoryTotal()-1;i>=0;i--) {

if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){

Print(" ",GetLastError()," ",i);

}

또 다른 {

if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGICMA){ 계속;}

if(주문유형()==OP_BUY){

if(OrderOpenTime()>=iTime(SMB, PERIOD_D1,0 )){

주문 구매++;

}

}

}

}

반환(구매 주문);

}

//------------------------------------------------ ------------------

int HistorySell(int MAGICMA){

int SellOrders=0;

(int i=OrdersHistoryTotal()-1;i>=0;i--){

if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){

Print(" ",GetLastError()," ",i);

}

또 다른 {

if(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGICMA){ 계속;}

if(주문유형()==OP_SELL){

if(OrderOpenTime()>=iTime(SMB,PERIOD_D1,0)){

SellOrders++;

}

}

}

}

반환(판매 주문);

}

//////////////또 다른 변형//////////////////////

extern 부울 WaitForNewDay = true;

거래 = 사실;

무효 초기화()

{

SMB=기호();

if(WaitForNewDay) {Trade=false;}

반품;

}

무효 시작()

{

if(WaitForNewDay) {if(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)==0) Trade=true;}

if(CalculateCurrentOrders(Symbol())==0 && 거래)

{CheckForOpen(); 거래=거짓; 반품;}

}