포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 98

 
Roger :

나는 이 EA가 실생활이나 테스터에서 작동하지 않을 것이라고 생각하지 않습니다.


왜요? 오류가 있습니까? 설명하다.

이것은 수평선 을 주문으로 변환하는 코드의 일부일 뿐입니다.

 
도와주세요. 20-30바에서 0까지의 거리에서 어드바이저를 최적화하는 방법. 차트 맨 끝에....
 

표시기 이해를 도와주세요. 작동 중 신호가 실시간으로 표시되지 않는 이유를 이해할 수 없지만 TF를 전환하는 경우에만 모든 것이 시각화를 위해 테스터에서 예상대로 그려집니다.

업데이트 전 http://charts.mql5.com/2/379/eurusd-m-m1-roboforex.png

http://charts.mql5.com/2/379/eurusd-m-m1-roboforex-2.png 이후

 //+------------------------------------------------------------------+
//|                                                           t27_zz |
//|                                                          tommy27 |
//|                                        SKYPE:       t.o.m.m.y.27 |
//|                                        MAIL: tommy27fx@gmail.com |
//+------------------------------------------------------------------+
#property copyright "tommy27"
#property link       "tommy27fx@gmail.com"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 FireBrick

extern int DeepBars = 5000 ;
double buf_1[];
double buf_2[];
//+------------------------------------------------------------------+
//| Функция инициализации, запускается один раз                      |
//+------------------------------------------------------------------+
int init() 
  {
   SetIndexBuffer ( 0 ,buf_1);
   SetIndexBuffer ( 1 ,buf_2);

   SetIndexStyle ( 0 , DRAW_ARROW , STYLE_SOLID , 2 );
   SetIndexStyle ( 1 , DRAW_ARROW , STYLE_SOLID , 2 );
   SetIndexArrow ( 0 , 108 );
   SetIndexArrow ( 1 , 108 );

   SetIndexEmptyValue( 0 , 0.0 );
   SetIndexEmptyValue( 1 , 0.0 );
   IndicatorShortName( "t27_zz" );
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Основная Функция, запускается на каждом тике                     |
//+------------------------------------------------------------------+
int start() 
  {
   if ( Bars <= 100 ) return ( 0 );
   int ExtCountedBars = IndicatorCounted();
   if (ExtCountedBars < 0 ) return (- 1 );
   if (ExtCountedBars > 0 ) ExtCountedBars--;
   for ( int i=DeepBars-ExtCountedBars- 1 ; i>= 0 ; i--)
     { 
       if (Bar1(i)== 1 )   buf_1[i+ 1 ] = Low[i+ 1 ]- 5 * Point ; //UP
       if (Bar1(i)== 2 )   buf_2[i+ 1 ] = High[i+ 1 ]+ 5 * Point ; //DOWN
     }
   return ( 0 );
  }
//---- end
//------------------------------------------------------------------------
int Bar1( int i)
{
 if (Low[i+ 1 ] <= Low[i+ 2 ] && Low[i+ 1 ] <= Low[i]) //UP
   return ( 1 );
 if (High[i+ 1 ] >= High[i+ 2 ] && High[i+ 1 ] >= High[i]) //DOWN
   return ( 2 );
 return ( 0 );
} 
 
tommy27 :

표시기 이해를 도와주세요. 작동 중 신호가 실시간으로 표시되지 않는 이유를 이해할 수 없지만 TF를 전환하는 경우에만 모든 것이 시각화를 위해 테스터에서 예상대로 그려집니다.



DeepBars 변수를 처리합니다.

 
splxgf :


DeerBars 변수를 처리합니다.


감사합니다! DeerBars를 제거했는데 모든 것이 작동했습니다. 그러면 표시된 깊이를 올바르게 설정하는 방법을 알려 주실 수 있습니까? 지금 DeerBars 를 어떻게 교체할 수 있습니까?
 

왜 교체합니까?

 if (ExtCountedBars > 0 ) ExtCountedBars--;
int recalc= Bars -ExtCountedBars; //добавить
for ( int i=recalc; i>= 0 ; i--) //поправить
 
splxgf:

왜 교체합니까?


네 다음과 같이 수정했습니다.

 if (ExtCountedBars > 0 ) ExtCountedBars--;
   for ( int i= Bars -ExtCountedBars- 1 ; i>= 0 ; i--)

및 DeepBars, 전체 기록이 표시되지 않지만 최신 DeepBars에 표시되도록 막대 수를 설정하고 싶었습니다. 어떤 이유로 이것은 수행할 수 없습니다.

 

및 DeepBars, 전체 히스토리가 표시되지 않지만 최신 DeepBars에 표시되도록 막대 수를 설정하고 싶었습니다. 어떤 이유에서인지 수행할 수 없습니다.


 if (ExtCountedBars > 0 ) ExtCountedBars--;
int recalc= Bars -ExtCountedBars;
if (recalc>DeepBars) recalc=DeepBars;
 
도움을 주셔서 대단히 감사합니다. 많은 도움이 되었습니다.
 
Dozol :


왜요? 오류가 있습니까? 설명하다.

이것은 수평선을 주문으로 변환하는 코드의 일부일 뿐입니다.

코드에 따르면 첫 번째 틱 후에 행이 삭제됩니다. 가격 추적 기능이 없으며 스크립트처럼 작동합니다. 수동으로 수평선을 그리면 주문이 열리거나 열리지 않지만 라인은 즉시 파괴됩니다. 이 코드를 사용하는 Sellstop 주문은 절대 열리지 않습니다.