[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 21

 
forexnew:

ゼロ除算が 書ける、私の記憶の限りでは。しかし、これは一部のパラメータが再計算されないことが原因です。つまり、ワークセッションが始まる前にEAを起動したために、EAが正しく起動しないだけなのです。

もちろん、これらのチェックボックスは削除されています。

このエラー(ゼロ除算)が発生した場合、Expert Advisor は動作しなくなります。コード内でゼロによる除算が発生する場所を探してください。ほとんどの場合、何らかのパラメータの計算結果としてゼロが得られます。
 
アイ、ありがとうございます。
 

こんにちは、親愛なるmqlの皆さん。ここで、私の最初のコード問題が発生します。

トレンド指標である。タスクは、1本目の線=前日と前々日の最大値、2本目の線=前日と前々日の最小値という座標のトレンド指標である。

それはいいとして、下位のタイムフレームに切り替えると、対応する価格水準ではあるが、座標が冒頭にまとわりついている......。と、セリフのセンスが完全に失われてしまう。

トレンドラインオブジェクトを作成 する際、datetime パラメータは非難されます。どうすればいいのか、思いつかない。価格の極値形成の時間を計算することが必要である。この情報のようです

1分足にはこの情報が埋め込まれているようです。トレンドが再描画され、極値に対応するバーに座標が付くように、タイムフレームを変更する際のdatetimeの決定方法について。

残念ながら、検索しても何も出てきません。アドバイスをいただければ幸いです。

 

商品の全履歴の価格挙動をMAで表示したいのですが、チャートに挿入してもインジケータが描画されません。

何が問題なのでしょうか?

コンパイル済み=0、0とした場合。

ところで、MT4のターミナルがハングアップしてしまうのですが・・・。

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии

extern int History  =1000000;            // Колич.баров в расчётной истории
extern int Aver_Bars=1000000;             // Количество баров для расчёта

double Buf_0[];                     // Открытие индикаторного массива
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за переиод
   Sum_L;                           // Сумма значений Low  за переиод
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 

Breakevenにさらにストップを移し、Breakevenを増加させたEAを書いています。すべてうまくいっているように見えますが、問題は1つだけです。ブレイクイーブンまたはブレイクイーブンに価格が移動したときにストップが跳ね上がっています。この問題は解決できない。

誰が知っているヘルプplz。

以下はそのコードです。

int poz=OrdersTotal();
for (n=0;n<poz;n++){
            if (OrderSelect(n,SELECT_BY_POS,MODE_TRADES)==true){
            if (OrderType()==OP_BUY){
            Prise2=Bid-OrderOpenPrice();
            if(Prise2>(25*Point)){
            OrderModify(OrderTicket(),0,OrderOpenPrice(),OrderTakeProfit(),0,Blue);}
            if(Prise>Prise3){
            Prise3=(OrderOpenPrice()+(35*Point));
            SL2=OrderOpenPrice()+(10*Point);
            OrderModify(OrderTicket(),0,SL2,OrderTakeProfit(),0,Blue);}}
 
Vodya:

Breakevenにさらにストップを移し、Breakevenを増加させたEAを書いています。すべてうまくいっているように見えますが、問題は1つだけです。ブレイクイーブンまたはブレイクイーブンに価格が移動したときにストップが跳ね上がっています。この問題は解決できない。

誰が知っているヘルプplz。

以下はそのコードです。

ブラケットのせいかな?
 
alex12:
ブラケットのせいかな?

どのようなものですか?もし、forの後であれば、それは全体の部分ではない。先ほどは買うためのコードを示しましたが、売るためのコードもあります。
 

注文は高値からorderopenpriceまでの距離の4倍でクローズするようにお願いします。

どこで失敗したのか?

すべての注文は、開始後3ピップ以内に終了します。

OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if ((High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid&&OrderType()==OP_BUY&&OrdersTotal()>0)
 {
 OrderClose(OrderTicket(),OrderLots(),Bid,3);
 }
 
LazarevDenis:

注文は高値からorderopenpriceまでの距離の4倍でクローズするようにお願いします。

どこで失敗したのか?

これ
(High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid
 
sergeev:
これ


オブライト警部...誰かヒントをくれませんか?