目利きの方に質問です - ページ 15

 
アスクから数えないといけないと思うんです。Bidで売り、Askで決済する。
 

そうですね。Askの閉鎖が必要かもしれませんね。試してみます。

例:売りの場合、takeprofitはbidからでもよい。

そしてストップロス-はAskから厳密に行うべき、おそらく...ストップレベラーはカウントされるべき

 

皆さん、こんにちは。

ここで質問です。

なぜかリアル口座のExpert Advisor(Pips、Grider)が突然理由もなく動かなくなる癖があるようです。(DCブロコ)。

サーバーのダウンタイム後に発生することもあり(よくあることです)、相場が再開された後にExpert Advisor(またはMT4)を再起動する必要があり、その時に初めて動作が開始されます。

時々EAが停止することがありますが、これも明白な理由がなく、EAを「押す」ためにmt4を再起動するか、EAを再インストールする必要があります。

注文は正しく行われます。掲示板で質問するのは勘弁してほしい。

LogFileにエラーはありません。この問題で困っている人がいたら、アドバイスをお願いします。

私のアカウントに注意を引かないように、フォーラムでテクニカルサポートに質問を投げかけたくないのです。

 
パターンの力に 頼る」の記事から、SL、TP、保留注文とその修正を削除してパターンを単純化する方法。そうでなければ、実験ができないのです。
 
shap писал(а)>>
記事「テンプレートの力に 頼る」から、SL、TP、保留中の注文とその修正を削除してテンプレートを簡素化する方法。そうでないと、実験ができないのです。

同じ内容の投稿は4回目です。>> 良くない。

 

こんばんは。インジケーターについての質問です。

ギャンファンを低から高へ、低から低へ インジケータで設定しています。

しかし、なぜか扇子の線が思い通りにならず、ランダムに描かれてしまうのです。

例えばこんな感じ(ここではファンが最大値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);
  }//конец функции СТАРТ
 

こんにちは、まだ2回目の投稿です、つまり掲示板の新参者です、言葉を学び始めました、もちろん質問は山ほどあります、本から学ぶのはちょっと難しいですね。私は教科書、尊敬するフォーラムのメンバーであるセルゲイ・コバレフから始め、このフォーラムの記事のいくつかを勉強しました...多くの理論の後、練習を始め、最初の専門家のテンプレートとアウトラインを作成し、ブロックに分割し、それがどのように動作するかを理解するために別の解析(徹底的に)後に今一関数は、あなたがプログラマではなく、ダイバーなら私を信じて、それは私の頭の中ですべてを分解し、何に何を理解するのは簡単ではありません。だからここで、誰もが私のためにそれを提案することができます プロフェッショナルこれまでのところ、本当の問題:今日、私は一日中座って、問題を解決することができました。

いくつかの関数をスクリプトとして実行し、コンパイルされるかどうか、どの関数が動作しないかどうかをターミナルで確認しています。今日、ウィンドウ内のバーの事前計算機能を取り込みました。

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

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


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

当然、*Not enough bars*というメッセージが出ますが、新しいティックでは、このメッセージは無期限に再び表示されると理解しています。

ここで、変数を追加し、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 not working*のメッセージがポップアップされず、実際にEAが動作しなくなるのか、です。
 

"分割統治"...- 不問に付すエラー箇所を特定しやすくするため...

https://docs.mql4.com/ru/basis/operators/switch- すべてを一度に見ることができる。デザインが頭の中で固まるまでは、古典的なパターンを使う。よく見比べてみると、すぐに間違いが見つかるだろう。

検索エンジンの使い方を覚える。

ドキュメントを読んだ後、コードが書かれたテキストを探し、そのコードがどのように適用されているかを確認します。

 
Daiver2 писал(а)>>

....

問題は、switch 文で何を間違えたのか、なぜ*Expert not working*というメッセージが表示されないのか、なぜ本当にEAが動かなくなるのか、ということです?

バー不足のメッセージを一度表示させたい場合は、そのようにします。

static int x=0;

if( x<2){
   if(Bars< A){
         if( x==0){
            Alert("Недостаточно баров");
            x=1;
         }
      return(0);
   } 
   else{
         if( x==1){
            Alert("Достаточно баров, начинаем работать");
         }
      x=2;
   }
}