Uzmanlar için soru - sayfa 15

 
rid >> :

İşte nasıl yapıldığı:

Yani StopLoss == TakeProfit'iniz var ve karşılaştırma koşullarında bu seçenek sunulmuyor (((

 
Ask'tan benim için düşünmek gerekir. Bid'de satıyoruz, Ask'ta kapatıyoruz.
 

Evet - ah. Ask kapatılmalı olabilir. Deneyeceğim.

Yani, satıştan kar elde etmek için Tekliften mümkündür.

Ve stop-ass - kesinlikle Ask'tan gerekli, görünüşe göre .. stop-seviye sayımı

 

Hepinize iyi günler.

İşte bir soru.

Bir nedenden dolayı, gerçek hayatta bir Uzman Danışman (pipsleme, ızgaracı), görünürde bir sebep olmaksızın işini aniden durdurma alışkanlığını "aldı"! (DC Broko)

Bazen bu, sunucu durdurulduktan sonra olur (genellikle orada olur) ve tekliflerin yeniden başlamasından sonra, danışmanın (veya MT4) yeniden başlatılması gerekir ve ancak o zaman çalışmaya başlar.

Bazen danışman kalkar, tekrar ediyorum, görünürde bir sebep olmadan ve onu "itmek" için MT4'ü yeniden başlatmanız veya danışmanı yeniden yüklemeniz gerekir.

Siparişler doğru bir şekilde yerleştirilir. acc. düzenleme ile.

Log'da herhangi bir hata yok. Kim karşılaştı - pl. söylemek ?

Hesabıma dikkat çekmemek adına forumda teknik desteğe soru sormak istemiyorum.

 
SL, TP, bekleyen siparişleri kaldırarak ve bunları değiştirerek " Şablonların gücüne güvenme " makalesinden şablon nasıl basitleştirilir. Ve denemek imkansız.
 
shap писал(а) >>
SL, TP, bekleyen siparişleri kaldırarak ve bunları değiştirerek " Şablonların gücüne güvenme " makalesinden şablon nasıl basitleştirilir. Ve denemek imkansız.

Bu aynı içeriğe sahip dördüncü gönderi. İyi değil

 

İyi akşamlar. Gösterge sorusu.

Türkiye'de yapımını kurdum. Aşağıdan ve yukarıdan Gann hayranları.

Ancak, nedense, fanın çizgileri ihtiyacım olan yöne değil, baykuşlara yönlendiriliyor. rastgele!

Örneğin, şöyle (burada, maksimum 1.4071'den fan bir nedenden dolayı yükseldi):

Neden bilmiyorum.

STRAT işlevindeki fanları şu şekilde ayarladım:

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

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

Lütfen. Hatanın neden ve nerede olduğunu söyler misiniz?

 

İşte tüm gösterge kodu;

 #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 ) ;
  } //конец функции СТАРТ
 

Merhaba, bu sadece ikinci mesajım, yani forumda yeniyim, dili öğrenmeye başladım, doğal olarak çok fazla soru var ama kitaplardan bir şekilde karmaşık. Forumun saygın bir üyesi olan Sergey Kovaleva'dan bir ders kitabıyla başladım ve bu forumdan bazı makaleler öğrettim... Uzun bir teoriden sonra uygulamaya başladım, bir şablon ve ilk uzmanın eskizini oluşturdum, bloklara böldüm, ve şimdi neyin işe yaradığını anlamak için birbiri ardına (tamamen) bir işlevi analiz ediyorum, inan bana, eğer bir programcı değil de bir dalgıçsanız, o zaman sadece her şeyi kafanıza koymak ve neyin ne olduğunu anlamak değildir. O halde, hadi işe başlayalım, birisi bana Profesyonel için benim için hala gerçek bir sorun olduğunu söyleyebilir mi: bugün bütün gün oturdum ve sorunu çözebildim.

Bazı fonksiyonları çalıştırıyorum, bunları script olarak çalıştırıyorum, derleme sırasında hata olup olmadığını ve hangilerini terminalde çalışıp çalışmadığını kontrol etmek için. Bugün penceredeki çubukların ön hesaplamasının İşlevini aldım:

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

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


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

Doğal olarak *Yeterli çubuk yok* mesajı görünüyor, ancak yeni bir onay işareti ile bu mesajın süresiz olarak tekrar görüneceğini anlıyorum.

Şimdi bir değişken ekliyorum ve bir if ifadesi ekliyorum ve ayrıca gelecekte Bloc_Error hata işleme bloğunda bir switch ifadesi koydum , sonuç şu:

 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 ) ;
   }
Soru şu ki, switch deyimini yanlış çevirdim, neden *Uzman çalışmıyor* mesajı gelmiyor ve böylece danışman gerçekten çalışmayı durduruyor?????
 

"böl ve yönet" ... - çalışılmamış anları karıştırmayın ... hatanın yeri daha kolay tespit edilmelidir ...

https://docs.mql4.com/en/basis/operators/switch - her şey aynı anda görülebilir. tasarım kafanıza yerleşene kadar - klasik şablonu kullanın. dikkatlice karşılaştırın - hataları hemen bulacaksınız.

aramayı kullanmayı öğrenin.

"soru üzerine" belgeleri okuduktan sonra, kodları içeren metinleri bulun ve NASIL uygulandıklarını görün...