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

 
Vinin :

당연하지만 다른 때.


mm, 나는 그가 조각으로 쓰고 있다고 생각했습니다. 음, 거기에 128 킬로바이트가 누출되었습니다. 기록되었습니다. 사고가 난다면 얼마나 더 정확할까요? 물론 역사에 대해서는 신경 쓰지 않지만.

그냥 이해할 수 없었어, 다운로드, 다운로드 중이지만 터미널이 닫힐 때까지 아무데도 없습니다))

 
ToLik_SRGV
Print() 에 대한 팁을 주셔서 감사합니다. 자세히 살펴보겠습니다.
 
sanyooooook :

init에서 변경할 수 있지만 이 매개변수를 변경할 수 있지만 처음에는 불확실합니다.


감사합니다. 창에서 TF를 변경할 때 칠면조가 다시 시작되므로 버퍼를 다시 칠할 수 있습니다.

그리고 작업의 의미 - 모든 TF에서 다른 TF의 확률에 해당하는 선의 색상은 항상 한 가지 색상으로 표시되어야 합니다. 즉, 시간별 스토캐스틱이 파란색이면 모든 시간대에서 파란색으로 설정합니다.

물론 해당 TF에 해당 색상의 버퍼를 할당할 수 있지만 처리 프로그램이 복잡해집니다. 그러나 어떤 조건에서도 동일한 버퍼를 읽기를 원합니다.

 
ToLik_SRGV :

Print() 먼저 여기에 넣어야 합니다.

c1b_1[i] 배열이 비어 있는지 확인하기 위해 따라서 물론 거래가 열리지 않은 경우 0을 비교합니다.

그리고 0이 있는 이유는 iMAOnArray( c1b ,0, AvgB ,0,MODE_SMA,i) 함수 (extern int AvgB =25;) 의 평균 주기가 c1b 배열 자체인 ArrayResize( c1b , PeriodB ) (extern int PeriodB= 20;) 이므로 평균을 낼 수 없습니다.


예, 실제로 "0"이지만 어떻게 해야 하는지 알려주세요. 이 방법으로 작동하지 않고 동일한 기간을 설정하고 두 옵션(신규 및 기존) 모두에서 시도했습니다. Print(" NormalizeDouble (c1b_1.. ., 0을 제공합니다(값 c1b[i]만 표시, c1s[i] - 0을 포함한 나머지 모두 표시), 옵션 중 하나를 작동 상태로 가져오는 데 도움을 주거나 최소한 힌트를 공유하면 누가 결함을 볼 수 있습니까?

새로운:

 // Торговые критерии   
   double c1b[];
   ArrayResize (c1b,PeriodB);
   double c1b_1[];
   ArrayResize (c1b_1,AvgB);
   for (i= 1 ;i<=PeriodB;i++)
   {
   c1b[i]= iCCI ( NULL , 0 ,PeriodB, PRICE_TYPICAL ,i);
   {
   c1b_1[i]=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA ,i);
   }
   }
   
   double c1s[];
   ArrayResize (c1s,PeriodS);
   double c1s_1[];
   ArrayResize (c1s_1,AvgS);
   for (i= 1 ;i<=PeriodS;i++)
   {
   c1s[i]= iCCI ( NULL , 0 ,PeriodS, PRICE_TYPICAL ,i);
   {
   c1s_1[i]=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA ,i);
   }
   }
   
   Print ( "NormalizeDouble(c1b_1[i],4) - " , NormalizeDouble (c1b_1[i], 4 ));
   Print ( "NormalizeDouble(c1b_1[i+2],4) - " , NormalizeDouble (c1b_1[i+ 2 ], 4 ));
   Print ( "NormalizeDouble(c1b_1[i+3],4) - " , NormalizeDouble (c1b_1[i+ 3 ], 4 )); 

if ( NormalizeDouble (c1b_1[i], 4 )< NormalizeDouble (c1b_1[i+ 2 ], 4 )&& NormalizeDouble (c1b_1[i+ 2 ], 4 )> NormalizeDouble (c1b_1[i+ 3 ], 4 ))
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
if ( NormalizeDouble (c1s_1[i], 4 )> NormalizeDouble (c1s_1[i+ 2 ], 4 )&& NormalizeDouble (c1s_1[i+ 2 ], 4 )< NormalizeDouble (c1s_1[i+ 3 ], 4 ))
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

낡은:

 // Торговые критерии
   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 , 1 );
   double c1b_2=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA , 2 );
   double c1b_3=iMAOnArray(c1b, 0 ,AvgB, 0 , MODE_SMA , 3 );
   
   double c1s[];
   ArrayResize (c1s,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 , 1 );
   double c1s_2=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA , 2 );
   double c1s_3=iMAOnArray(c1s, 0 ,AvgS, 0 , MODE_SMA , 3 );
   
   Print ( "NormalizeDouble(c1b_1,4) - " , NormalizeDouble (c1b_1, 4 ));
   Print ( "NormalizeDouble(c1b_2,4) - " , NormalizeDouble (c1b_2, 4 ));
   Print ( "NormalizeDouble(c1b_3,4) - " , NormalizeDouble (c1b_3, 4 ));

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

전부의:

파일:
21_1.mq4  15 kb
 

여러분, 신호를 검색하기 위해 4개의 타임프레임에 걸쳐 루프를 구성하는지 궁금합니다. 예를 들어, 다른 시간대?

 
Rossi :

여러분, 신호를 검색하기 위해 4개의 타임프레임에 걸쳐 루프를 구성하는지 궁금합니다. 예를 들어, 다른 시간대?


구현 방법에 따라 다릅니다.
 

int TimeMassive[15, 30, 60, 240] ;

for(int k=0; k<4; K++)

{

timeframe= TimeMassive[k] ;

for(int i=0; i<limit; i++)

버퍼[i]= iMA(NULL, 시간 프레임, ...........................) ;

}

이와 같이 각 시간 프레임에 특별히 메모리를 할당하지 않고

 
같이.
 
Rossi :

int TimeMassive[15, 30, 60, 240] ;

for(int k=0; k<4; K++)

{

timeframe= TimeMassive[k] ;

for(int i=0; i<limit; i++)

버퍼[i]= iMA(NULL, 시간 프레임, ...........................) ;

}

이와 같이 각 시간 프레임에 특별히 메모리를 할당하지 않고


 int TimeMassive[]={ 15 , 30 , 60 , 240 } ;

for ( int k= 0 ; k< 4 ; K++)

{

timeframe= TimeMassive[k] ;

for ( int i= 0 ; i<limit; i++)

Buffer[i]= iMA ( NULL , timeframe,..........................) ;

}
그래서 조금 더 정확할 것입니다.
 
스택 오버플로의 원인은 무엇입니까? 테이크 크기가 큰 위치를 열 때(테이크는 변동성에서 계산되고 100을 곱한 크기는 41*100으로 판명됨) 스택 오버플로가 로그에 기록되고... 건강합니다. 이 포지션이 닫힐 때까지 더 이상 단일 포지션이 열리지 않으며, 이 포지션은 엄청난 테이크로 인해 닫히지 않습니다... 그리고 어드바이저가 더 이상 올바르게 작동하지 않기 때문입니다. 오픈 포지션의 예정된 총 이익에 도달하면 모든 포지션을 청산해야 합니다... 그러나 이것은 한 포지션이 오랫동안 약 2,000포인트의 엄청난 이익을 냈음에도 불구하고 그런 일이... 이것? 결국, 열린 포즈가 함께 스택을 오버플로하고 모든 것이 공중제비를 굴릴 때 그러한 상황에 대해 보장할 수 없습니다...
사유: