[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 221

 

Expert Advisorが実装している機能の一つです。もちろん、トレーリングストップだけを 含むEAを書く こともできます(もちろん、そのようなEAはすでに大量に書かれています)。

MTターミナルには、Expert Advisorに関連しない標準的なトレーリングストップがあります。

 
alsu:


MTターミナルは、Expert Advisorとは関係なく、社内でトレーリングを行っています。

ありがとうございます。まさにその通りです。では、もうひとつの質問です。MQL4を理解するのにかかった時間は?プロになって徹底的にすごいExpert Advisorを書こうというわけではありません。AからZまでかっこいいEAを書くプロになれとは言いませんが、せめて既存のEAを書くときに何をいじればいいのかくらいは知っておきたいですね。自分のことをはっきりさせるために、現段階ではオペレーターをマスターしています。勉強を始めてから2週間が経ちました。可能性はどのくらいだと思いますか?繰り返す。先生は周りにいないので、誰にも聞けません。

回答ありがとうございました。

 

みんな、最悪だ!!!(((((( ;゚Д゚)))))

海外の証券会社を選びたい、海外で口座を開きたい・・・見つからない・・・レビューを見ても、詐欺や「サクラ」のような気がする・・・(

MT4でみんなを助ける・・・とてもありがたいことです!!!!

 
新しいピノキオは、信頼できるフィールド・オブ・ワンダーを探している、みたいな。バカにしないでください)
 

1ライン表示。

#property indicator_separate_window    
#property indicator_buffers 1        
#property indicator_color1 Aqua      

  int index;
  double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer(0,TickPrice);          
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1); 
   return;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index++;

   return;                         
  }
//--------------------------------------------------------------------

質問です。

なぜ、右から左へ線を 引くのですか?

 

これはどうでしょう?

#property indicator_separate_window    
#property indicator_buffers 1        
#property indicator_color1 Aqua      

  int index=1000;
  double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer(0,TickPrice);          
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1); 
   return;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index--;

   return;                         
  }
//--------------------------------------------------------------------
 

こんにちは、日足バーが異なる時刻から始まるように再描画するインジケータをどこで見つけることができるか教えてください。

例:端末の時刻が00:00の場合。インジケーターの入力パラメータに「+4」と入力します。これで日足バーが4時にスタート。

よろしくお願いします。

 
DhP:

こうしたらどうだろう?


そう、その方がいいんです。正しい方向で描き始める。しかし、index--とすると、ある日突然index=0となり、すべてがシャットダウンされてしまうのです。

ムーブメントを継続させるためには?

 
artmedia70:
アレイのサイズを大きくするには?値をどこに書けばいいのか?(ArrayResize() 関数)


配列への並べ替えがうまくいきました。

int OrderStatus() {
   int z1=1, z2=1, z3=1, z4=1;
   if (B>0) {ArrayResize(TicketB,B);}
   if (S>0) {ArrayResize(TicketS,S);}
   if (BS>0) {ArrayResize(TicketBS,BS);}
   if (SS>0) {ArrayResize(TicketSS,SS);}
   int i, k=OrdersTotal();
      for (i=1; i<=k; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket();
            z1++;
            }
            if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
            if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketB[z3]=OrderTicket();
            z3++;
            }
            if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketS[z4]=OrderTicket();
            z4++;
            }
         }
      }
}

しかし、買いポジションと売りポジションの収益性でさらにソートすることができません。

int OrderVBezubitok() {
   int k1=0, k2=0;
   ArrayResize(TicketBez,B+S);
   ArrayResize(TicketTral,B+S);
   int i;
   if (ArraySize(TicketB)>0) {
      for (i=1; i<ArraySize(TicketB)+1; i++) {
            OrderSelect(TicketB[i], SELECT_BY_TICKET, MODE_TRADES);
            if (OrderProfit()>0) {k1++; TicketTral[k1]=TicketB[i];} 
            else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }
   if (ArraySize(TicketS)>0) {
      for (i=1; i<ArraySize(TicketS)+1; i++) {
            OrderSelect(TicketS[i], SELECT_BY_TICKET, MODE_TRADES);
            if (OrderProfit()>0) {k1++; TicketTral[k1]=TicketB[i];} 
            else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }      
}

なぜだ?

 

ハローフレンド

この掲示板に初めて書き込むので、場違いかもしれませんが、よろしくお願いします。

助けてくださいということです。

もしかしたら、同じようなことに遭遇した人がいるかもしれません。

問題は以下の通りです。ある期間の価格の最大値と最小値を見つけるためのインジケータを書いています。maxをminで割ってseparate_windowに表示させたい。

しかし、窓は空っぽだ。

足し算、引き算、掛け算などをするとき。MAXIMUMとMINIMUMはインジケーターが正常に表示されます。

以下はそのコードです。全然少ないです。

#property indicator_separate_window
#property indicator_buffers 3

#property indicator_color1 MediumSpringGreen
#property indicator_color2 Crimson
#property indicator_color3 LightGray

#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1

extern int Buy_bars = 20;           //Количество баров для открытия позиции
extern int Sell_bars = 23;          //Количество баров для закрытия позиции  

double   buf_0[],                   //индикаторныЙ массив максимумов 
         buf_1[],                   //индикаторныЙ массив минимумов 
         buf_sr[] ;                 //индикаторныЙ массив средних значений
//extern int Shift = 0;

int init()
  {
   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Maximum");
   SetIndexShift (0, 0);
   
   SetIndexBuffer (1, buf_1);
   SetIndexStyle (1, DRAW_LINE);
   SetIndexLabel (1, "Minimum");
   SetIndexShift (1, 0);
   
   SetIndexBuffer (2, buf_sr);
   SetIndexStyle (2, DRAW_LINE);
   SetIndexLabel (2, "Srednyaya");
   SetIndexShift (2, 0);
   
   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i, k ,t;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   while (i >= 0)
   {
      double max = 0;
      double min = 999999999999.99;
   
   for (k=i ; k<=i+Buy_bars-1; k++)
      {
      if (High[k] > max) max = High[k];
      }
   for (t=i; t<=i+Sell_bars-1; t++)  
      {
      if (Low[t] < min) min = Low[t];
      }
        
   i--;
   

   buf_sr[i] = (max/min);
   }
   return;
  }
//+------------------------------------------------------------------+

誤りを指摘する。

よろしくお願いします。