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

 

안녕하세요!

처음으로 Expert Advisor를 써보려고 했는데 :-) 약간의 어려움이 있었습니다.

어드바이저의 논리는 다음과 같습니다. 마지막 n개의 막대에 대한 최대값과 최소값을 표시하는 표시기가 있으며 최대 또는 최소값이 깨졌을 때 주문을 열어야 합니다.

차트에 어드바이저를 첨부하면 SELL 포지션 이 즉시 열립니다. 왜 이런 일이 일어나는지 이해할 수 없습니다.

오류는 표시기 매개변수를 전달하는 iCustom() 함수에 있는 것 같습니다.

EA와 인디케이터를 부착했습니다.

파일:
xox.mq4  10 kb
 
그리고 여기 지표가 있습니다.
파일:
go_go_1.mq4  2 kb
 
Pacman :

안녕하세요!

처음으로 Expert Advisor를 써보려고 했는데 :-) 약간의 어려움이 있었습니다.

어드바이저의 논리는 다음과 같습니다. 마지막 n개의 막대에 대한 최대값과 최소값을 표시하는 표시기가 있으며 최대 또는 최소값이 깨졌을 때 주문을 열어야 합니다.

차트에 어드바이저를 첨부하면 SELL 포지션이 즉시 열립니다. 왜 이런 일이 일어나는지 이해할 수 없습니다.

오류는 표시기 매개변수를 전달하는 iCustom() 함수에 있는 것 같습니다.

EA와 인디케이터를 부착했습니다.

지시자 배열의 0번째 인덱스를 채우지 않고,

   for ( k= 1 ; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }

그리고 그것을 참조하십시오:

   double L_1= iCustom ( NULL , 0 , "Go_go" ,K, 0 , 0 );   //Линия минимума
   double L_2= iCustom ( NULL , 0 , "Go_go" ,K, 1 , 0 );   //Линия максимума 

약간(구조적으로) 비뚤어졌지만 처음으로 그렇게 할 것입니다. 내 조언: "올바른 코딩 접근 방식에 즉시 익숙해지십시오. 예를 들어 코드에서 다음 조건을 사용하십시오.

       if ( Total== 0 && Opn_B==true)               //Открытых ордеров нет + 
머지 않아 테스터에서 온라인 거래로 전환하고 때로는 여러 고문이 병렬로 작업하고 이러한 코드가 작동하지 않기 때문에 문맹입니다.
 
Pacman :
그리고 여기 지표가 있습니다.

iHighest()iLowest() 함수가 마음에 들지 않는 이유는 무엇입니까?
 
 
0x는 16진수를 나타냅니다.
 
좋은 아침! 작동하지 않는 상태
 bool CCInapravlenie=false;
if ( CCI_50S> 100 &&CCI_50< 100 ||CCI_50S> 0 &&CCI_50< 0 || CCI_50S>- 100 &&CCI_50<- 100 )CCInapravlenie=true;

if (CCInapravlenie){ imja = DoubleToStr (Time[ 0 ], 0 ); 
ObjectCreate (imja, 22 , 0 , iTime ( NULL , 0 , 0 ), iLow ( NULL , 0 , 0 )- 0.0001 ); ObjectSet (imja, OBJPROP_ARROWCODE , 241 );
ObjectSet (imja, OBJPROP_COLOR , Yellow ); // стрелка жолтая 
} //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

나는 이미 if와 함께 줄을 보았고, 보았다, 보았다, 보았다 .... 뭔가 이유가 있습니다. 눈을 깜박일 수 있고 간단하고 기본적인 것이 보이지 않습니다. 결국 발생합니다.

아침에 보았다. 나갔다. 왔어요 또 봐요 훨씬 쉬울 것 같아요 더 많이 덜 .. 전혀 이해가 안 가요.



그리고 이것은 내 시작 아래에 있습니다
 double EMA_10 = iMA ( NULL , 0 , 10 , 0 , MODE_EMA , PRICE_CLOSE , 0 );
double EMA_20 = iMA ( NULL , 0 , 20 , 0 , MODE_EMA , PRICE_CLOSE , 0 );
double LMA_100 = iMA ( NULL , 0 , 100 , 0 , MODE_LWMA , PRICE_CLOSE , 0 );
double МА_30 = iMA ( NULL , 0 , 30 , 0 , MODE_SMA , PRICE_CLOSE , 0 );
double CCI_50 = iCCI ( NULL , 0 , 50 , PRICE_CLOSE , 0 );

double EMA_10S = iMA ( NULL , 0 , 10 , 0 , MODE_EMA , PRICE_CLOSE , 1 );
double EMA_20S = iMA ( NULL , 0 , 20 , 0 , MODE_EMA , PRICE_CLOSE , 1 );
double LMA_100S = iMA ( NULL , 0 , 100 , 0 , MODE_LWMA , PRICE_CLOSE , 1 );
double МА_30S = iMA ( NULL , 0 , 30 , 0 , MODE_SMA , PRICE_CLOSE , 1 );
double CCI_50S = iCCI ( NULL , 0 , 50 , PRICE_CLOSE , 1 );


추신 이것은 모두 전략의 그러한 조건의 일부입니다.

EMA - 기간 10이 위에서 아래로 교차 EMA - 기간 200, CCI가 위에서 아래로 0.100 또는 -100 수준을 교차합니다. 양초가 마감되었거나 LMA – 기간 100 미만입니다.
 
TheXpert :
0x는 16진수를 나타냅니다.

고맙습니다.
 

노란색 화살표가 전혀 없습니다. 악마는 알고 있습니다. 게다가 미러컨디션도 작동!!!!

거울 상태

 bool napravlenieCCI=false;
 if ( CCI_50S< 100 &&CCI_50> 100 ||CCI_50S< 0 &&CCI_50> 0 || CCI_50S<- 100 &&CCI_50>- 100   )napravlenieCCI=true;
   if (napravlenieCCI){   string imja = DoubleToStr (Time[ 0 ], 0 );
   ObjectCreate (imja, 22 , 0 , iTime ( NULL , 0 , 0 ), iHigh ( NULL , 0 , 0 )+ 0.0004 ); 
   ObjectSet (imja, OBJPROP_ARROWCODE , 242 );
   Print ( " ObjectSet242  " , GetLastError ());
   ObjectSet (imja, OBJPROP_COLOR , Red ); Print ( " сOBJPROP_COLO  " , GetLastError ());}

화면

 
TarasBY :

지시자 배열의 0번째 인덱스를 채우지 않고,

그리고 그것을 참조하십시오:

약간(구조적으로) 비뚤어졌지만 처음으로 그렇게 할 것입니다. 내 조언: "올바른 코딩 접근 방식에 즉시 익숙해지십시오. 예를 들어 코드에서 다음 조건을 사용하십시오.

머지 않아 테스터에서 온라인 거래로 전환하고 때로는 여러 고문이 병렬로 작업하고 이러한 코드가 작동하지 않기 때문에 문맹입니다.


답변 해주셔서 감사합니다!

알겠습니다. 배열을 더 탐색해야 합니다.

그리고 나는 실제로 내 아이디어를 빠르게 테스트하기 위해 "Total==0"이라는 조건을 작성했습니다. 이제 코드 베이스를 뒤지고 이 조건을 수정하기 위해 비슷한 것을 찾으려고 노력할 것입니다.

전적으로 동의합니다. 코드를 올바르게 작성하는 방법을 배워야 합니다. 수정하겠습니다.

당신의 도움을 주셔서 대단히 감사합니다.