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

 

다른 사람들은 어레이를 처리할 수 없습니다. 무엇이 잘못되었는지 알려주세요(조건은 간단합니다. 평활화된 CCI의 다음 피크 이후 매수/매도):

오류 없이 컴파일되며 전략이 시작되고 주문이 이루어지지 않을 때 로그에 아무 것도 쓰지 않습니다.

   double c1b[];
   ArrayResize (c1b,PeriodB);
   for (i= 1 ;i<=PeriodB;i++)
   c1b[i]= iCCI ( NULL , 0 ,PeriodB, PRICE_TYPICAL ,i);
   double c1b_1=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i);
   double c1b_2=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 2 );
   double c1b_3=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 3 );
   
   double c1s[];
   ArrayResize (c1b,PeriodS);
   for (i= 1 ;i<=PeriodS;i++)
   c1s[i]= iCCI ( NULL , 0 ,PeriodS, PRICE_TYPICAL ,i);
   double c1s_1=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i);
   double c1s_2=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 2 );
   double c1s_3=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 3 );


   if (c1s_1>c1s_2&&c1s_2<c1s_3)
     {                                          //
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
   if (c1b_1<c1b_2&&c1b_2>c1b_3)
     {                                          //
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }
 


이중 c1s[];
배열 크기 조정( c1b , 기간)

하나의 배열을 선언하고 다른 배열을 수정합니다.

 
Roger :


이중 c1s[];
ArrayResize(c1b, 기간)

하나의 배열을 선언하고 다른 배열을 수정합니다.


감사합니다. 다른 문제는 무엇입니까? 도움이되지 않았습니다.
 

배열은 요소 0에서 시작하므로 표현식

for(i=1;i<=PeriodS;i++)

null을 건너뛰고 마지막에 아무것도 쓰지 않습니다.

또한 이 표현식만 루프에서 실행됩니다.

c1b[i]=iCCI(NULL,0, PeriodB ,PRICE_TYPICAL,i);

나머지는 의미가 없습니다. 루프 i가 최대값과 같으므로 모든 값은 0이 됩니다.

 
Craft :

또 뭐가 잘못됐어


정규화 없는 이중 비교는 올바르지 않습니다... 다음을 시도하십시오.

   double c1b[];
   ArrayResize (c1b,PeriodB);
   for (i= 1 ;i<=PeriodB;i++)
   c1b[i]= iCCI ( NULL , 0 ,PeriodB, PRICE_TYPICAL ,i);
   double c1b_1=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i);
   double c1b_2=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 2 );
   double c1b_3=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i+ 3 );
   
   double c1s[];
   ArrayResize (c1b,PeriodS);
   for (i= 1 ;i<=PeriodS;i++)
   c1s[i]= iCCI ( NULL , 0 ,PeriodS, PRICE_TYPICAL ,i);
   double c1s_1=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i);
   double c1s_2=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 2 );
   double c1s_3=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i+ 3 );


   if ( NormalizeDouble (c1s_1, 4 )> NormalizeDouble (c1s_2, 4 )&& NormalizeDouble (c1s_2, 4 )< NormalizeDouble (c1s_3, 4 ))
     {                                           //
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
   if ( NormalizeDouble (c1b_1, 4 )< NormalizeDouble (c1b_2, 4 )&& NormalizeDouble (c1b_2, 4 )> NormalizeDouble (c1b_3, 4 ))
     {                                           //
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

 
DDFedor :


정규화 없는 이중 비교는 올바르지 않습니다... 다음을 시도하십시오.


도움을 주셔서 감사합니다. 여전히 작동하지 않습니다.
 
Roger :

배열은 요소 0에서 시작하므로 표현식

for(i=1;i<=PeriodS;i++)

null을 건너뛰고 마지막에 아무것도 쓰지 않습니다.

또한 이 표현식만 루프에서 실행됩니다.

c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);

나머지는 의미가 없습니다. 루프 i가 최대값과 같으므로 모든 값은 0이 됩니다.


그러면 어떨까요? 시도(i=0;i<=PeriodS;i++) - 도움이 되지 않았습니다.
 
Craft :

그러면 어떨까요?

코드의 모든 위치에 있는 각 변수에 인쇄하고 각 단계에서 무슨 일이 일어나고 있는지 로그를 살펴보십시오.
 

좋은 오후에요. 초보자에게 말하십시오. 데모에서 내가 개시 함수에 symbol()을 작성하면 어드바이저가 주문을 열고, "EURUSD"와 같은 특정 쌍으로 변경하면 오류 133이 발생하고 확인할 때 - if (MarketInfo (Symbol(),MODE_TRADEALLOWED)==true)
{Alert("!");}else{Alert("?");} - "!"를 반환합니다. 즉, 거래가 허용 됩니다 .. 동시에 133. 문제가 무엇입니까. 내가 개시 함수에서 def를 지정하면 고문 중 누구도 거래를 열지 않습니다. 기호 .. 이미 시도하지 않았습니다.

미리 감사드립니다. 나는 포럼을 어지럽히지 않기 위해 여기에 있습니다))

 
artmedia70 :
그리고 이것이 반전이 아니라 수정이라고 누가 말했습니까?

죄송합니다. 즉시 응답하지 않았습니다. nbuk는 완전히 사망했습니다. 이빨이 더 이상 아프지 않기를 바랍니다. 하지만 끔찍한 일입니다. 고백합니다. 나는 Babon에 죄를 지었습니다. 잘 작동하지만 NMAZZ 표시기가 탓입니다. 어디서 다운로드했는지 기억이 안나지만 여전히 하나의 차트에서 작동하지만 세 개의 차트(5M, 30M, 4H) 그리고 그게 다야, 컴퓨터가 마침내 또는 터미널이 멈춥니다. 차트에서 지표를 하나씩 제거하기 시작했고, 그렇게 해서 이 통증을 발견했습니다. 하지만 지금은 모든 것을 설정했고 이 칠면조가 무엇이 잘못되었는지 모르지만 처음에는 아름답게 그렸습니다. 그리고 반전이나 수정에 관해서는 네 맞습니다. 항상 독특한 반전은 아니지만 개코원숭이가 30M, 1H 및 4H에서 색상을 변경하면 반전이 아닌 경우 수정이 모호하지 않고 수익을 올릴 수 있습니다. 돈.