전문가를 위한 질문 - 페이지 15

 
rid >> :

완료 방법은 다음과 같습니다.

따라서 StopLoss == TakeProfit이 있고 비교 조건에서 이 옵션이 제공되지 않습니다(((

 
Ask에서 채굴하려면 고려할 필요가 있습니다. 우리는 Bid에서 판매하고 Ask에서 닫습니다.
 

예 - 오. Ask를 닫아야 할 수도 있습니다. 노력하겠습니다.

즉, Sell Take Profit의 경우 Bid에서 가능합니다.

그리고 stop-ass - Ask에서 엄격하게 필요합니다. 분명히 .. stop-level count

 

모두에게 좋은 하루.

여기 질문이 있습니다.

어떤 이유에서인지 실생활의 Expert Advisor(pipsing, grider)는 명백한 이유 없이 갑자기 작업을 중단하는 습관을 "얻었습니다!" (DC 브로코)

때때로 이것은 서버가 중지된 후(종종 발생함) 발생하고 따옴표를 재개한 후 어드바이저(또는 MT4)를 다시 시작해야 작동을 시작합니다.

때로는 어드바이저가 명백한 이유없이 일어나서 "푸시"하려면 MT4를 다시 시작하거나 어드바이저를 다시 설치해야 합니다.

주문이 올바르게 이루어집니다. 기준 규정으로.

로그에 오류가 없습니다. 누가 직면했는지 - pl. 말하다 ?

내 계정에 관심을 끌지 않기 위해 포럼에서 기술 지원에 대한 질문을 하고 싶지 않습니다.

 
SL, TP, 보류 중인 주문을 제거하고 수정하여 " 템플릿의 힘에 의존 " 문서에서 템플릿을 단순화하는 방법. 그리고 실험하는 것은 불가능합니다.
 
shap писал(а) >>
SL, TP, 보류 중인 주문을 제거하고 수정하여 " 템플릿의 힘에 의존 " 문서에서 템플릿을 단순화하는 방법. 그리고 실험하는 것은 불가능합니다.

같은 내용의 네 번째 글입니다. 안좋다

 

좋은 저녁이에요. 지표 질문입니다.

시공은 터키로 하고 있습니다. Gann 은 낮은 곳에서 높은 곳에서 아래로 팬입니다.

그런데 어째서인지 부채의 선이 내가 원하는 방향이 아니라 부엉이를 향하고 있다. 무작위로!

예를 들어 다음과 같이(여기서는 최대값 1.4071에서 어떤 이유로 팬이 올라갔습니다):

이유를 모르겠습니다.

다음과 같이 STRAT 기능에서 팬을 설정합니다.

 //задаем текущие значения ввера Ганна от минимума вверх
// и вычисляем масштаб веера
        ObjectMove ( "GANNFAN_" , 0 , Time [ xLOW ] , LOW ) ;
        Масштаб_Веера_ = MathAbs ( MathSqrt ( ( LOW ) * 10000 ) ) ;

//задаем текущие значения ввера Ганна от максимума вниз
// и вычисляем масштаб веера
        ObjectMove ( "GANNFAN" , 0 , Time [ xHIGH ] , HIGH ) ;
        Масштаб_Веера = ( - 1 ) * MathAbs ( MathSqrt ( ( HIGH ) * 10000 )  ) ;

제발. 오류가 발생한 이유와 위치를 알려주실 수 있습니까?

 

다음은 전체 표시기 코드입니다.

 #property indicator_chart_window
//-------------------------------------------------------------------+
extern string     _  = "---- ОБЩИЕ ПАРАМЕТРЫ -----" ; 
extern int       Bars_ = 200 ; //кол-во баров для расчета формулы
extern int       TimeFr = 0 ; //задаем тф для расчета
extern color     Цвет_Веера = DarkViolet ;     
//--------------------------------------------------------------
int     xLOW , xHIGH ;
double   HIGH , LOW ;
 double       Масштаб_Веера ;
 double       Масштаб_Веера_ ;
//+------------------------------------------------------------------+
int init ( )
  { 
//обьявляем веер Ганна от мин вверх  
ObjectCreate ( "GANNFAN_" , OBJ_GANNFAN , 0 , 0 , 0 , 0 , 0 ) ; 
//задаем флаг фонового отображения веера 
 ObjectSet ( "GANNFAN_" , OBJPROP_BACK , 1 ) ;
 //задаем цвет веера 
ObjectSet ( "GANNFAN_" , OBJPROP_COLOR , Цвет_Веера ) ;
//задаем толщину линий веера Ганна
ObjectSet ( "GANNFAN_" , OBJPROP_WIDTH , 2 ) ; 
 //задаем масштаб веера Ганна   
ObjectSet ( "GANNFAN_" , OBJPROP_SCALE , Масштаб_Веера_ ) ; 

//обьявляем веер Ганна  от макс вниз 
ObjectCreate ( "GANNFAN" , OBJ_GANNFAN , 0 , 0 , 0 , 0 , 0 ) ; 
//задаем флаг фонового отображения веера 
 ObjectSet ( "GANNFAN" , OBJPROP_BACK , 1 ) ;
 //задаем цвет веера 
ObjectSet ( "GANNFAN" , OBJPROP_COLOR , Цвет_Веера ) ;
//задаем толщину линий веера Ганна
ObjectSet ( "GANNFAN" , OBJPROP_WIDTH , 2 ) ; 
 //задаем масштаб веера Ганна   
ObjectSet ( "GANNFAN" , OBJPROP_SCALE , Масштаб_Веера ) ;  
 
//задаем вертикальные линии от экстремумов 
ObjectCreate ( "line" , OBJ_VLINE , 0 , 0 , 0 , 0 , 0 ) ; //вертикальная линия от макс
ObjectSet ( "line" , OBJPROP_BACK , 1 ) ;
ObjectSet ( "line" , OBJPROP_COLOR , Red ) ; //цвет
ObjectSet ( "line" , OBJPROP_WIDTH , 2 ) ; //толщина линии
ObjectCreate ( "line_" , OBJ_VLINE , 0 , 0 , 0 , 0 , 0 ) ; //вертикальная линия от мин
ObjectSet ( "line_" , OBJPROP_BACK , 1 ) ;
ObjectSet ( "line_" , OBJPROP_COLOR , Orange ) ; //цвет
ObjectSet ( "line_" , OBJPROP_WIDTH , 2 ) ; //толщина линии 
  } //------конец функции ИНИТ

//+------------------------------------------------------------------+
int deinit ( ) {
ObjectDelete ( "GANNFAN_" ) ;
ObjectDelete ( "GANNFAN" ) ;
ObjectDelete ( "line" ) ;
ObjectDelete ( "line_" ) ;
//if (!IsTesting()) ObjectsDeleteAll(0,OBJ_TREND);  
               }

//+------------------------------------------------------------------+

int start ( )
  { 
 xHIGH =  iHighest ( NULL , TimeFr , MODE_HIGH , Bars_ , 1 ) ; //номер бара максимума
 HIGH =  iHigh ( NULL , TimeFr , xHIGH ) ;        // ценовое значение максимума
 xLOW  =  iLowest ( NULL , TimeFr , MODE_LOW , Bars_ , 1 ) ;   //номер бара минимума
 LOW  =  iLow ( NULL , TimeFr , xLOW ) ;            // ценовое значение минимума
//задаем текущие горизонтальные лимнии на мин и макс
//ObjectMove ( "lowline" , 0 , Time [ xLOW ] , LOW ) ; 
//ObjectMove ( "highline" , 0 , Time [ xHIGH ] , HIGH ) ; 
        
 //задаем текущие значения ввера Ганна от
// минимума и вычисляем масштаб веера
   ObjectMove ( "GANNFAN_" , 0 , Time [ xLOW ] , LOW ) ;
   Масштаб_Веера_ = MathAbs ( MathSqrt ( ( LOW ) * 10000 ) ) ;
        
//задаем значения для отрисовки вертик линии на минимуме
   ObjectMove ( "line_" , 0 , Time [ xLOW ] , 0 ) ; 
        
          
//задаем текущие значения ввера Ганна от 
//максимума вниз и вычисляем масштаб веера
   ObjectMove ( "GANNFAN" , 0 , Time [ xHIGH ] , HIGH ) ;
   Масштаб_Веера = ( - 1 ) * MathAbs ( MathSqrt ( ( HIGH ) * 10000 )  ) ;
        
 //задаем значения для отрисовки вертик линии на максимуме
 ObjectMove ( "line" , 0 , Time [ xHIGH ] , 0 ) ; 


   return ( 0 ) ;
  } //конец функции СТАРТ
 

안녕하세요, 이것은 두 번째 메시지입니다. 즉, 저는 포럼에서 처음이고 언어를 배우기 시작했습니다. 자연스럽게 질문이 많지만 책에서 어떻게 든 복잡합니다. 저는 Sergey Kovaleva 포럼의 존경받는 회원인 교과서로 시작하여 이 포럼에서 일부 기사를 가르쳤습니다... 긴 이론 끝에 저는 연습을 시작했고 첫 번째 전문가의 템플릿과 스케치를 만들고 블록으로 나누었습니다. 이제 나는 작동하는 것을 이해하기 위해 하나의 기능을 하나씩 분석합니다. 저를 믿으십시오. 당신이 다이버이고 프로그래머가 아닌 경우 모든 것을 머리에 넣고 무엇이 무엇인지 이해하는 것이 아닙니다. 자, 이제 본격적으로 이야기해 보겠습니다. 누군가 나에게 Professional에게는 여전히 실질적인 문제가 있다고 말해 줄 수 있습니까? 오늘은 하루 종일 앉아서 문제를 해결할 수 있었습니다.

일부 기능을 실행하고 컴파일 중 오류가 있는지 여부와 상관없이 스크립트로 실행하여 터미널에서 작동하는지 여부를 확인합니다. 오늘 나는 창에서 막대의 예비 계산 기능을 사용했습니다.

 //+------------------------------------------------------------------+

int start ( )
   {
       int A = 100 ;
//+------------------------------------------------------------------+  
       if ( Bars < A )              // Недостаточно баров
       {       
       Alert ( "Недостаточно баров в окне инструмента." ) ;
       return ;                    // Выход из start()
       }


   return ( 0 ) ;
   }
//+------------------------------------------------------------------+  

당연히 *부족한 막대*라는 메시지가 표시되지만 새로운 틱으로 이 메시지가 무기한 다시 나타날 것임을 이해합니다.

이제 변수를 추가하고 if 문 을 추가하고 미래의 오류 처리 블록 Bloc_Error 에서 switch 문 을 입력하면 다음과 같이 나타납니다.

 int start ( )
   {
       int A = 100 ;
       bool Work = true ;   
//+------------------------------------------------------------------+      
       int Bloc_Error     // Пользовательская функция
//+------------------------------------------------------------------+      
     switch ( )            // Преодолимые ошибки:
       {
       case 3 :            // Неверные параметры:
      Work = false ;
       return ( 0 ) ;
       }

//+------------------------------------------------------------------+ 

       if ( Bars < A )    // Недостаточно баров
       {       
       Alert ( "Недостаточно баров в окне инструмента." ) ;
       return ;                    // Выход из start()
       }
       if ( Work = = false )            // Ошибка   
       {       
       Alert ( "Эксперт не работает." ) ;      
       return ;                    // Выход из start   
       }
//+------------------------------------------------------------------+   
   return ( 0 ) ;
   }
문제는 내가 switch 문 에서 잘못 회전했는데 왜 *Expert가 작동하지 않습니다* 메시지가 나오지 않고, 그래서 Advisor가 실제로 작동을 멈춘다는 것입니다????
 

"나누고 정복하라" ... - 공부하지 않은 순간을 섞지 마십시오 ... 오류 위치를 더 쉽게 감지해야합니다 ...

https://docs.mql4.com/en/basis/operators/switch - 모든 것이 한 번에 볼 수 있습니다. 디자인이 머리에 저장될 때까지 - 클래식 템플릿을 사용하세요. 주의 깊게 비교하십시오 - 즉시 오류를 찾을 수 있습니다.

검색을 사용하는 방법을 배웁니다.

"질문에 대한" 문서를 읽은 후 코드가 있는 텍스트를 찾고 코드가 어떻게 적용되는지 확인하십시오...