[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 611

 

必要な期間(外部変数で設定される)の高値と安値のラインを メインウィンドウに描画 する簡単なインジケータを書くのを手伝ってください。

 

平日15日分の手帳がどこにあるか教えてください。

リンクかファイルか名前を教えてください。

そして、いつもながらありがとうございます。

 
41ckm39fi:

こんばんは。

エラー内容を教えてください。このインジケータは、2つのMAをクロスすることについてのメッセージを出しません。


このインジケーターを書く前に、よく考えたのでしょうか?

せめて自分だけでも、その論理を説明してください。

#property indicator_chart_window

extern int        Period_MA_fast         = 5,
                  Period_MA_med          = 8,
                  Period_MA_slow         = 16,
                  period_DeMarker       = 14;
//---- 
double            DeMarker_buffer0[],
                  Speed_MA_fast[],
                  Speed_MA_med[],
                  Speed_MA_slow[];      

#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   //---- indicators
   IndicatorBuffers(4);
   SetIndexBuffer(0,DeMarker_buffer0);
   SetIndexBuffer(1,Speed_MA_fast);
   SetIndexBuffer(2,Speed_MA_med);
   SetIndexBuffer(3,Speed_MA_slow);
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_NONE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
   //----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int    counted_bars=IndicatorCounted();
   int    i,limit;
   
   if(counted_bars>0) counted_bars--;
      limit=Bars-counted_bars;
   //----
   for(i=limit; i>=0; i--) {
      DeMarker_buffer0[i]=iDeMarker(NULL,0,14,i);
      Speed_MA_med[i]=iMA(NULL,0,Period_MA_med,0,MODE_LWMA,PRICE_CLOSE,i);
      Speed_MA_slow[i]=iMA(NULL,0,Period_MA_slow,0,MODE_LWMA,PRICE_CLOSE,i);
   }
   
   for(i=limit; i>=0; i--)
      Speed_MA_fast[i]=iMAOnArray(DeMarker_buffer0,0,5,0,MODE_LWMA,i);
   
   static int PrevTime = 0;

   if(PrevTime >= Time[0] ) return(0);
   PrevTime = Time[0];

   if(Speed_MA_fast[SIGNAL_BAR] - 0.3 > 0)
      if (0.3 - Speed_MA_fast[SIGNAL_BAR+1] >= 0)
         Alert( "sMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );

   if(0.7 - Speed_MA_fast[SIGNAL_BAR] > 0)
      if (Speed_MA_fast[SIGNAL_BAR+1] - 0.7 >= 0)
         Alert("sMA(", Symbol(), ", ", Period(), ")  -  SELL!!!");

   if(Speed_MA_med[SIGNAL_BAR] - Speed_MA_slow[SIGNAL_BAR] > 0)
      if (Speed_MA_med[SIGNAL_BAR+1] - Speed_MA_slow[SIGNAL_BAR+1] >= 0)  
         Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );   

   if(Speed_MA_slow[SIGNAL_BAR] - Speed_MA_med[SIGNAL_BAR] > 0)
      if (Speed_MA_slow[SIGNAL_BAR+1] - Speed_MA_med[SIGNAL_BAR+1] >= 0)  
         Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SELL!!!" );     
  
  
   return(0);
}
//+------------------------------------------------------------------+
動作確認はしていませんが、動作するかもしれません
 

皆さん、ありがとうございます! もうひとつ、質問が あります......。

あるシグナルに基づいたエントリー、エグジット条件を持つEAがあるのですが、(何があっても)

すなわち、3画面-1指標、例えばForceやStohostickなど

終了条件もそれによってのみ

すべてOKですが、ポジションを保護するために追加のストップロスが 必要です。

すなわち、=10p。

このEAを使えば、少なくとも追加損失は発生しないのでしょうか?

それはとにかく終了信号があるので、少なくとも小さなロット= 0.01で追加損失なしでそのようなExpert Advisorを使用することが可能かもしれません。

P.S.メールかICQを考えていたのですが、今開いてみたらMTメッセージがありました。

と、どこに立ち寄るのがベストなのか考えてしまいます。

......................................頼まれたら断っちゃダメだよ

 
KlugerX35:

皆さん、ありがとうございます! もうひとつ、質問が あります......。

あるシグナルに基づいたエントリー、エグジット条件を持つEAがあるのですが、(何があっても)

すなわち、3画面-1指標、例えばForceやStohostickなど

終了条件もそれによってのみ

すべてOKですが、ポジションを保護するために追加のストップロスが必要です。

すなわち、=10p。

このEAを使えば、少なくとも追加損失は発生しないのでしょうか?

それはとにかく終了信号があるので、少なくとも小さなロット= 0.01で追加損失なしでそのようなExpert Advisorを使用することが可能かもしれません。

P.S.メールかICQを考えていたのですが、今開いてみたらMTメッセージがありました。

と、どこに立ち寄るのがベストなのか考えてしまいます。

......................................頼まれたら断っちゃダメだよ


もし、Expert Advisorが「テクニカル」な出口を持っているなら、ストップは必要ありません。もし、念のため、保険のためにストップを置きたいなら、より大きなストップを置いてください。

10Pは実質的な損失です。

どの期間、1分間と小さいのでしょうか?もちろん、それは狂気の沙汰であり、利益を生む可能性のある取引でさえも切り刻んでしまうでしょう。

このようなExpert Advisorを追加LOSなしで使用することは可能でしょうか、少なくとも

スモールロット=0.01で

安定的に動作し、エラーも正常に 処理され、取引結果に満足できるのであれば、OKです。
 

これは質問なのですが、どなたか解説をお願いします。

カウンターオーダーでクローズすると、スプレッドが1つ節約できると書いてあるのはなぜですか?結局、最初の取引、例えば買いはAskで買われ、その時のBid価格で売られ(合計ポジションサイズに利益はない)、2番目の取引 - 売りはBidで開かれ、それに応じてポジションの長さはAskの終値に基づいて計算されます。

このマニュアルでは、いくつかの不明確な例を挙げています。https://book.mql4.com/ru/trading/orderclose、その違いは記載されているようにスプレッドではなく、2つ目の取引のサイズにあります。ある取引では2対15のクロージング、その反対では15のみ、つまり取引のすべての損失は消えますが、スプレッドは消えないということです。

では、ここで何が問題なのか?

 
FatyM:

平日15日分の手帳がどこにあるか教えてください。

リンクかファイルか名前を教えてください。

そして、いつもながらありがとうございます。

ファイル:
 
Vinin:


このインジケーターを書く前に、よく考えたのでしょうか?

少なくとも自分のために、論理を書き出す。

多分、うまくいくと思います、確認してませんが

ミューウイング 比較のロジックを書き直しましたが、まだメッセージは出ません、何がエラーなのかわかりません。
#property indicator_chart_window
#property  indicator_level1 0.3
#property  indicator_level2 0.7
//---- 
extern int        Period_DeMarker       = 14;
//---- 
double            DeMarker_buffer0[],
                  MA0[],
                  MA1[],
                  MA11[],
                  MA2[],                        
                  MA22[];      

#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
IndicatorBuffers(6);
SetIndexBuffer(0,DeMarker_buffer0);
SetIndexBuffer(1,MA0);
SetIndexBuffer(2,MA1);
SetIndexBuffer(3,MA2);
SetIndexBuffer(4,MA11);
SetIndexBuffer(5,MA22);
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_NONE);
SetIndexStyle(2,DRAW_NONE);
SetIndexStyle(3,DRAW_NONE);
SetIndexStyle(4,DRAW_NONE);
SetIndexStyle(5,DRAW_NONE);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int    i,limit;
//----
if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//----
  for(i=limit; i>=0; i--)
  DeMarker_buffer0[i]=iDeMarker(NULL,0,14,i);
//---- 
  for(i=limit; i>=0; i--)
  
  MA0[i]=iMAOnArray(DeMarker_buffer0,0,5,0,MODE_LWMA,i);
//----   
  static int PrevTime = 0;
//---- 
  if(PrevTime >= Time[0]) return(0);
//---- 
  PrevTime = Time[0];
//----
                if(MA0[SIGNAL_BAR] - 0.3 > 0 && 0.3 - MA0[SIGNAL_BAR+1] >= 0)  
//---- 
                                Alert( "sMA(", Symbol(), ", ", Period(), ")  -  BUY!!!" );
//----
if(PrevTime <= Time[0]) 

return(0);
//---- 
  PrevTime = Time[0];
//----          
                if(0.7 - MA0[SIGNAL_BAR] > 0 && MA0[SIGNAL_BAR+1] - 0.7 >= 0)
//----               
                                Alert("sMA(", Symbol(), ", ", Period(), ")  -  SELL!!!");
                                
                                
MA1[i]=iMA(NULL,0,8,0,MODE_LWMA,PRICE_CLOSE,i);
                        
MA2[i]=iMA(NULL,0,16,0,MODE_LWMA,PRICE_CLOSE,i);

MA11[i]=iMA(NULL,0,8,0,MODE_LWMA,PRICE_CLOSE,i);
                        
MA22[i]=iMA(NULL,0,16,0,MODE_LWMA,PRICE_CLOSE,i);                                                       
                
//----   
if((MA1[i]>MA2[i]) && (MA11[i+1]<MA22[i+1]))  
//---- 
                                Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SIGNAL1!!!" );    

if((MA1[i]<MA2[i]) && (MA11[i+1]>MA22[i+1]))  
//---- 
                                Alert( "speedMA(", Symbol(), ", ", Period(), ")  -  SIGNAL2!!!" );   

   return(0);
  }
 

どうすればMathRandを 正しく動作させることができますか?実行するたびに同じ乱数セットが表示されます。つまり、ランダムではないのです。

 

どうすればMathRandを 正しく動作させることができますか?実行するたびに同じ乱数セットが表示されます。つまり、ランダムではないのです。