初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 638

 
Vitaly Muzichenko:

どなたか、この回線に遭遇したことのある方、またその方法をご存知の方、アドバイスをお願いします。

29301441,1475681547,0,0.01,EURUSD,1.1207,0.0000,0.0000,1475690944,1.1213,0.00,0.00,0.60,,13134545

このように

-118,120,-39,52,-58,-76,62,-66,-49,-97,-38,-86,-125,-52,-70,-96,89,-23,13,-91,111,74,-79,16,65,127,116,-76,99,5,27,48,42,44,55,-94,84,-72,-63,115,26,18,-47,-46,5,-55,32,68,114,-20,46,-7,79,7,82,78,-91,41,82,-114,121,112,-64,-106,35,-10,24,-128,58,-81,-69,92,34,79,64,-97,52,-95,127,-18,-46,104,104,85,56,93,8,100,14,-52,-88,-38,-28,-76,-49,35,-74,27,120,74,53,124,-104,-59,-1,41,-127,-99,103,104,-38,2,47,-93,68,35,-15,44,123,47,78,-117,15,-114,-46,-98,-108,-26,

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

2番目の文字列は、符号付きchar配列とほぼ同じです。つまり、「文字列」全体がバイト単位で印字されたバイナリ構造である可能性もあり、最初に暗号化されている可能性もあるので、0
 

こんにちは。

私自身はプログラマーではないのですが、EAにシグナルをメールで通知させるようにしたいのです。タスクは単純でうまくいっているように見えるが、シグナルの条件が満たされると無限にメールを送信してくる。

各シグナルに1通ずつしかメールを送らないようにしたいのですが、どうすればいいですか?

以下は、私が作成した単純移動平均の コードの例です。何を追加、修正すればよいのでしょうか?

int init()
  {
   return(0);
  }
start()
  {
//-----------------------------------------------------------------------------------------------------
// Сигналы
//-----------------------------------------------------------------------------------------------------
if(Open[1]>ma && Close[1]<ma)  {
bool res = SendMail("Сигнал", " Покупай");
}
if(Open[1]<ma && Close[1]>ma) {
SendMail("Сигна", "Продавай");
}
//-------------------------------------------------------------------
   return(0);
  }

 
ev85:

こんにちは。

私自身はプログラマーではないのですが、EAにシグナルをメールで通知させるようにしたいのです。タスクは単純でうまくいっているように見えるが、シグナル条件を満たすと無限にメールを送ってくる。

各シグナルに1通ずつしかメールを送らないようにしたいのですが、どうすればいいですか?

以下は、私が作成した単純移動平均の コードの例です。何を追加、修正すればよいのでしょうか?


datetime mailTimeを追加し、送信前の時間を記憶することで、再送信の手間を省くことができます

datetime mailTime=0;
int init()
  {
   return(0);
  }

start()
  {
//-----------------------------------------------------------------------------------------------------
// Сигналы
//-----------------------------------------------------------------------------------------------------
if(Open[1]>ma && Close[1]<ma && Time[1]>mailTime)  {
bool res = SendMail("Сигнал", " Покупай");
if (res) mailTime=Time[1];
 }
if(Open[1]<ma && Close[1]>ma && Time[1]>mailTime) {
bool res=SendMail("Сигна", "Продавай");
if (res) mailTime=Time[1];
 }
//-------------------------------------------------------------------
   return(0);
  }

ps. EAではそろそろstart()からOnTick()に切り替えてもいいのでは?

psExpert Advisor を再起動する場合、mailTime も端末のグローバル変数に保存される必要があります。

 
Maxim Kuznetsov:

datetime mailTime を追加し、送信前の時間を記憶することで、メールを再送信する必要がないようにする。

ps. そろそろEAもstart()からOnTick()に切り替えましょう

psまた、EAを再起動したときのために、mailTimeは端末のグローバル変数に保存しておく必要があります。

うまくいかなかった。ずっとメッセージを送り続けている。

 
ev85:

こんにちは。

私自身はプログラマーではないのですが、EAにシグナルをメールで通知させるようにしたいのです。タスクは単純でうまくいっているように見えるが、シグナルの条件が満たされると無限にメールを送信してくる。

各シグナルに1通ずつしかメールを送らないようにしたいのですが、どうすればいいですか?

以下は、私が作成した単純移動平均の コードの例です。何を追加、修正すればよいのでしょうか?



static datetime TimeN=0;
int init()
  {
   return(0);
  }
start()
  {
//Операции выполняются только при появлении следующего бара
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;

//-----------------------------------------------------------------------------------------------------
// Сигналы
//-----------------------------------------------------------------------------------------------------
if(Open[1]>ma && Close[1]<ma)  {
bool res = SendMail("Сигнал", " Покупай");
}
if(Open[1]<ma && Close[1]>ma) {
SendMail("Сигна", "Продавай");
}
//-------------------------------------------------------------------
   return(0);
  }
 
-Aleks-:
今年に入ってから、メールが全く送られてこない((
 
ev85:
今年からメールが全く届かなくなった((
では、あなたのマは何に相当するのでしょうか?ひょっとして、ゼロバーのマですか?
 
-Aleks-:
では、maは何に相当するのでしょうか?ひょっとして、ゼロバーでマではないですか?

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

 
ev85:

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

そうすれば、すべてがクリアになります。ゼロバー上のマッハは常に再計算されるため、シグナルは1ティックごとに表示されます。

この方法で試してみてください。

static datetime TimeN=0;

int Signal=0;


int init()

  {

   return(0);

  }

start()

  {

//Операции выполняются только при появлении следующего бара

   datetime TimeC=iTime(NULL,TF,0);

   if(TimeN==0)TimeN=TimeC;

   if(TimeN==TimeC && Signal==1) return;

   TimeN=TimeC;

   Signal=0;


//-----------------------------------------------------------------------------------------------------

// Сигналы

//-----------------------------------------------------------------------------------------------------

if(Open[1]>ma && Close[1]<ma)  

{

bool res = SendMail("Сигнал", " Покупай");

Signal=1;

}

if(Open[1]<ma && Close[1]>ma) 

{

SendMail("Сигнал", "Продавай");

Signal=1;

}

   return(0);

  }


一般的には、通常、比較を行う

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,1);

ma>Open[0]です。


 
Maxim Kuznetsov:
の場合、2つ目の文字列は符号付き文字列の配列とほぼ同じです。つまり、「文字列」全体がバイト単位で印字された単なるバイナリ構造である可能性があり、最初に暗号化されているため、0
はい、いくつかのアクションの後、文字列は確かに署名された文字であることが判明しました。さて、問題はサーバーで読めるようにするにはどうしたらいいかということです。
理由: