테스터가 특정 브로커의 모든 설정을 사용하기 때문에 고려한 것 같습니다. 보다 정확하게는 검색이 알려줄 것입니다. 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
프랙탈 표시기가 어떻게 작동하는지, 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 {}에 표시된 대로 하는 것 같습니다. 맞습니까?
프랙탈 표시기가 어떻게 작동하는지, 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)를 통해 코드를 배치하면 느낌표 없이 더 빨리 답을 얻을 수 있습니다.
많은 도움 주셔서 감사합니다 =)
테스터에서 표시기는 경고 창을 내보내지 않고 대신 경고 메시지를 로그에 씁니다. 그래도 스크립트를 사용하여 이러한 코드 조각을 디버그하는 것이 더 좋습니다. 더 빠르게 나타납니다.
그런데 이상하게도 인디케이터 메시지는 테스터 로그가 아니라 실시간 로그에 테스터에 기록됩니다.
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
"이마에" 문제가 해결되지 않았습니다.
이렇게 될 수 있을까
아니면 찾았다
감사하다!
조건이 어떻게 작동하는지 잘 이해하지 못합니다.
프랙탈 표시기가 어떻게 작동하는지, 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 {}에 표시된 대로 하는 것 같습니다. 맞습니까?
달라진게 없어!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
다 제대로 쓰여진 것 같군요 도와주세요 !!!!!!!! 설명 !!!!!!
조건이 어떻게 작동하는지 잘 이해하지 못합니다.
프랙탈 표시기가 어떻게 작동하는지, 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)를 통해 코드를 배치하면 느낌표 없이 더 빨리 답을 얻을 수 있습니다.
마치 ||
https://docs.mql4.com/ru/basis/operations/bool
논리적 OR 연산.
위협 대응 - M - 버튼을 누르고 코드를 삽입하는 SRC와 같습니다.
나는 당신이 나에게 제안한 코드를 비틀려고했습니다. 결과는 항상 동일합니다. 하루 종일 거래를 계속 엽니다. 켜기/끄기 기능을 유지하고 싶습니다.
다음은 시도되고 테스트된 옵션입니다.
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(); 거래=거짓; 반품;}
}