정적 배열? - 페이지 5

 
아하하하하하! 이제 그는 나에게 LOL을 말합니다.

좋아, 여기에 내가 몇 가지 결과로 조금 더 나은 것을 얻었습니다. 결과를 완전히 이해하지 못하지만 거기에서 알아낼 수 있고 결과를 얻을 수 없는 이유를 이해할 수 있다고 생각합니다.

감사해요

 //+------------------------------------------------------------------+
//|                                                  Agent86_5min.mq4 |
//|                                                    Unfinished POS |
//|                                    
//+------------------------------------------------------------------+
#property copyright "Unfinished POS by Agent86"


//---- input parameters
extern double     TakeProfit= 20.0 ;
extern double     Lots= 0.1 ;
extern double     StopLoss= 15.0 ;
extern int MagicNumber= 123486 ;

double v1[ 5 ];
double v2[];
double v3[];
double val1;
double val2;
double val3;


//++++ These are adjusted for 5 digit brokers.

int      pips2points;     // slippage  3 pips    3=points    30=points
double   pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int      Digits .pips;     // DoubleToStr(dbl/pips2dbl, Digits.pips)

     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if ( Digits == 5 || Digits == 3 )
   {     // Adjust for five (5) digit brokers.
      pips2dbl    = Point * 10 ; pips2points = 10 ;   Digits .pips = 1 ;
   } 
   else 
    {    
      pips2dbl    = Point ;    pips2points =   1 ;   Digits .pips = 0 ; 
    }
     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return ( 0 );
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
  
   double    faster = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 1 ), //MODE_MAIN
            slower = iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 1 ); //MODE_SIGNAL
            
  
          
   
     for ( int i= Bars ; i >= 0 ; i--)
     {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
   
       // Print (val1, (" val1")); //will print some 0's
       if (val1 > 0 )
         {        
          v1[i]=High[i];
 
         }
       else           
         {
         v1[i]=v1[i+ 1 ];
         }
        

      val2= iFractals ( NULL , 0 , MODE_LOWER,i);
     
       if (val2 > 0 ) 
         {
         v2[i]=Low[i];
         }
       else           v2[i]=v2[i+ 1 ];
       
     }   
     
     for (i= Bars ; i >= 0 ; i--)
     {
     val1= iFractals ( NULL , 0 , MODE_UPPER,i);
     if (val1> 0 )
      {
       double v1[ 6 ];
      v1[ 5 ]=High[i];
       Print ( "v1[" , 5 , "]= " , v1[ 5 ]);
      }
     }
     
        
                       
        
           

//---- 

 
                    
        

                
   return ( 0 );
  }    

//+------------------------------------------------------------------+
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3312
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3315
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3284
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3299
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3306
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3325
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3343
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3399
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3419
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3398
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3374
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3375
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3378
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3387
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3383
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3373
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3372
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3368
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3356
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3366
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3369
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3386
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3303
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3314
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3294
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5: v1[5]= 1.329
 
이제 이전 프랙탈 을 참조하는 방법을 알아낼 수 있습니다.

감사해요

 
항상 설명이 있습니다. . . 당신은 그것을 찾을 필요가 있습니다. :-)
 
RaptorUK :

예, 표시기 버퍼는 일반 배열과 다르게 처리됩니다.

v[i]는 Array를 선언하지 않고 요소 중 하나일 뿐입니다. . 하지만 더블 v[]; 요소가 없는 배열입니다. . 그래서 v[anything] 항상 = 0

이것은 나에게 혼란 스럽습니다.
따라서 실제로 값을 배열에 넣을 수 있지만 아직 선언되지 않았기 때문에 어떤 요소인지 알지 못하고 해당 요소에 액세스할 수 있는 방법은 없습니다. 오른쪽 ?

배열에 요소가 0개 있는 경우 버퍼는 v1[i]의 선을 그리는 방법을 어떻게 알 수 있습니까? ?

그것은 실제로 정적 bool에 가깝고 그 시점에서 실제로 배열처럼 작동하지 않기 때문입니까? High[i] = True를 의미하므로 High[i]를 그리세요?
그러나 요소에 실제로 값이 없는 상태로 그립니다. True이고 그 순간에 High[i]를 그리는 것이 좋습니까?

내가 이것에 가깝지 않다면 명확히하십시오.

그리고 과외해주셔서 감사합니다
 

표시기 버퍼 는 특수 Arrays입니다. . . 배열과 버퍼를 혼동하지 마십시오. 비슷하지만 다릅니다.

원래 코드에서 v1[] 및 v2[]는 버퍼이고 최신 코드에서는 배열입니다. 배열을 선언할 때 크기를 지정해야 합니다. 예를 들어 v1[50]에는 v1[0]의 50개 요소가 있습니다. v1[49]로. 더 많은 요소가 필요하고 값이 버퍼에서 자동으로 이동하면 버퍼가 자동으로 크기를 조정합니다. 현재 형성 중인 막대인 막대 0을 고려하십시오. 이 막대가 완료되면 해당 막대와 관련된 표시기 값이 인덱스 1로 이동해야 합니다. . . 이것은 Buffers 를 사용하여 자동으로 수행됩니다. . 배열과 비슷한 것을 원하면 할 수 있지만 직접 코딩해야 합니다.

 
알겠습니다. 버퍼가 실제로 동일하지 않다는 것을 몰랐을 뿐입니다. 이것이 제가 이해해야 하는 바로 그 것이며, 아마 얼마 전에 이것을 알아냈을 것입니다.

감사해요
 
for (i= Bars ; i >= 0 ; i--)
      {
      val3= iFractals ( NULL , 0 , MODE_UPPER,i);
       if (val3> 0 )
         {      
         v3[ 1 ]=High[i];
         double v3[ 9 ];
// if I put v3[1]=High[i]; here in stead of above it will not draw the line, probably because of this buffer topic again
         Print ( "v1[" , 1 , "]= " , v3[ 1 ]);
         }
      }

어쨌든 지금은 좋은 진전을 이룰 수 있을 것 같아요


이 줄을 배열 선언 바로 위에 놓을 수 있으며 표시기를 표시하지만 0만 인쇄하고 그 아래에 놓으면 값을 인쇄합니다.

 
iFractals와 val1>0에 대해 물어봐도 될까요?

나는 이것이 ==True를 의미한다고 가정하고 계속합니다.

따라서 이것이 사실인 시점에서 단순히 인쇄하는 것이 사실인 한 값의 지속적인 변경 사항을 인쇄하므로 이 값을 어떻게 알 수 있습니까?

또한 배열을 선언한 다음 v1[3]=High[i]와 같이 배열의 요소를 선언하면 인쇄 결과도 val1>0으로 계속 변경됩니다.

그래서 나는 이것을 이해하려고 노력하고 있으며 val1>0이 되는 순간에 어떻게 시간을 고정할 수 있는지 또는 값을 얻을 수 없기 때문에 버퍼에서 [i] 값을 사용하지 않고 실제 프랙탈 값이 무엇인지 어떻게 알 수 있습니까? 앞서 논의한 바와 같이 버퍼에서 [i]는 배열을 선언하지 않고 자체적으로 선언되지 않습니다. 부분적으로 선언되지 않았습니다.

따라서 배열을 선언하고 값을 High[i]로 지정하면 원하는 인쇄 결과가 생성되는 것 같지만 표시기와 같이 고정되어 있지 않으므로 표시기에 고정 값이 있는 방법과 이것을 순서대로 재현하는 방법 이 값을 사용하거나 유용한 다른 변수로 이름을 바꿉니다.

조언 부탁드립니다

감사해요

 
아마도 당신은 당신이 하려고 하는 것을 설명하는 것으로 시작해야 할 것입니다. . . . 코드를 전혀 언급하지 않고. . 그냥 평범한 영어. 그것 은 아마 우리 둘 다 의 상황 을 더 명확 하게 만들 것입 니다 . . ;-)
 
RaptorUK :
아마도 당신은 당신이 하려고 하는 것을 설명하는 것으로 시작해야 할 것입니다. . . . 코드를 전혀 언급하지 않고. . 그냥 평범한 영어. 그것 은 아마 우리 둘 다 의 상황 을 더 명확 하게 만들 것입 니다 . . ;-)
헐 알았어

신호 자체가 차트에 표시할 iractal을 참조하는 방법을 배우고 싶습니다.
일반적으로 모두가 아니라 높음 및/또는 낮음 중 1개 또는 이전 항목을 선택하고 사용하기 위해 선택합니다.
일종의 ABCD 명명 체계에서 사용하려면

iFractals는 이 용도를 위해 내가 직접 만들려고 했던 작업을 거의 수행하는 것 같기 때문에 이 도형에 변수 이름을 지정할 수 있기를 원했습니다.

표시기에 표시된 대로 그리고 새 항목이 형성될 때까지 계속 표시되는 v1[i]=High[i]에 대해 표시된 대로 이러한 고정 iFractal을 참조하도록 코드를 설계할 수 있습니다. 표시기는 고정된 값을 보여줍니다

그래서 현재 v1[i]=High[i]에 대한 변수를 생성하는 코드를 만들려고 했으며 이것은 A일 수 있지만 내 같은 이동 값이 아닌 표시기와 같은 고정 값을 원합니다. 문을 인쇄합니다.

그런 다음 이전 High[i]에서 선택하여 A 또는 B로 표시할 수 있습니다. C if(A>High[i] at the time) 등입니다. 완전히 다른 전략의 다른 부분에서 사용하기 위한 좋은 ABCD 체계를 시도하고 생각해 냅니다. 그러나 많은 사람들이 fibs 및 기타 많은 부품 및 지표와 함께 이러한 유형의 ABCD 체계를 사용한다는 것을 알았습니다. 하지만 저는 그냥 기본적인 ABCD 체계를 만들고 나중에 이 ABCD 등을 기반으로 추세선 을 그리는 방법을 배우고 싶었습니다.

그리고 다른 많은 것들이 있지만 지금은 ABCD 유형의 것입니다.

감사해요