MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1474

 
MakarFX:

void()

また、ここに掲載した私のコードでは、このvoid() はどこに挿入すればよいのでしょうか?
ありがとうございました。

 
ANDREY:

また、ここに掲載した私のコードでは、このvoid() はどこに挿入すればよいのでしょうか?
感謝

挿入しない - 作成する

OnTick()から削除

そして

//--- input parameters
input int      Points=30;
double LoU;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }
 
MakarFX:

挿入しない - 作成する

OnTick() から削除

そして

興味をそそられますね......。そして、このvoid()は、私のコードや目的に対して、一体何をするのでしょうか?

OnTick()からの計算が他の関数に渡されることは理解できました。また、void() が発生する箇所では、どのような機能を実行するのでしょうか?
ありがとうございました。

 
ANDREY:

興味をそそられますね......。また、このvoid()は、私のコードとターゲットとの関係 で、正確に何をするのでしょうか?
感謝

タイマーで動作します。

 
MakarFX:

タイマーを使った作業

タイマーは、コードをチェックする頻度を、ティック 毎、分毎、時間毎、日毎のローソク足でプログラムに伝えるのですか?
もしそうなら、1分ごとのローソク足でチェックするようにタイマーを設定すれば、テスト中のコード実行にかかる時間はずっと短くなりますか?

 
ANDREY:

タイマーは、コードをチェックする頻度をプログラムに対して指示するものですか、それとも毎分、毎時、毎日のロウソクですか?

サインをしました。

EventSetTimer(60); // таймер в секундах
 
MakarFX:

サインをしました。

なぜ分単位ではないのか?

それとも実際は分単位なのでしょうか?それとも、1ティック 毎ではなく、1秒毎にコードが実行されるのでしょうか?秒より刻みが多く、時にはもっと多く...。
 
ANDREY:

なぜ分単位ではないのか?

86400秒に設定すると、1日1回になります。

 
MakarFX:

挿入しない - 作成する

OnTick() から削除

そして

以下は、あなたのコードです。

input int      Points=30;
double LoU,Pr;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }

しかし、なぜか注文は一切開かなかった。

 
MakarFX:

アンドレイ、毎ティックか 秒単位か決めてください。 86400秒に設定すると...1日1回になります。

今、手に入れた。それは、任意の間隔に設定できるということが聞きたかったのです。
ありがとうございます。