正方形や長方形を描画する本当に助けが必要だ...

 

通貨ペアの価格が変化したときに、チャート上に四角形や長方形を描画し、15秒間保持した後、削除して次に価格が変化したときに再び表示させるには、どうすればよいですか。

助けてください、ずっと悩んでいるんです。絵を描くだけなら簡単ですが、値段が変わるとなると......無理ですね =(

 

すみません、自分でコードを書いてデバッグする時間がないのですが、私のTORを扱うことができると思います。このインジケータを作りたいのですが。

1) 静的変数 static double PrevPrice=0.0 を宣言する。

2) はじめに、次のような構成を書きます。

if(PrevPrice!=Bid)とする。

{

DeleteBox(...); /* 矩形を削除(まだ残っている場合) */。

DrawBox(...); /*矩形を描画 する */。

Sleep(15000); /* 15秒待つ */。

DeleteBox(...); /* 矩形を削除 */。

PrevPrice=Bid; /* 新しいチェックのために新しい価格を記憶する */。

}

 

DeleteBox(...)。

DrawBox(...)。



ヘルプを見てもこれらの機能は見つからなかったのですが、回答ありがとうございました。

 

インジケーターでは、スリープ 機能は働きません。

Expert Advisorや無限ループで動作するスクリプトが必要です。

 

これをEAでやりたいのですが、2つ目の関数。こんなEAもあるんですね。


static double mSaveAsk;
 
int init()
{
   mSaveAsk = Ask;
}
 
int start()
{
   if ( Ask != mSaveAsk )
   {
      PlaySound("alert.wav");
   }
   mSaveAsk = Ask;
}
 
Chaos666 писал (а)>>

これをEAでやりたいのですが、2つ目の関数です。こんなEAもあるんですね。

MQL4のコードを追加するには、エディターでソースコードの追加コマンドを使用してください。

 
よかったです。
 
Chaos666 писал (а)>>

DeleteBox(...)。

DrawBox(...)。

ヘルプを見てもこれらの機能は見つからなかったのですが、回答ありがとうございました。

そして、あなたはそうしないでしょう。これらの機能は自分で行う必要があります。

 
そう理解したのです。残念ながら私は非常に不慣れで、ただ勉強中です。事例が必要なので、相談したところ...。
 
#property copyright "Copyright © 2008, D500"
#property link      "http://www.metaquotes.net"
extern int Timer=15;
extern color Coler=OrangeRed;
 
double PrevPrice;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(PrevPrice!=Bid)
 
{
 
if (ObjectFind("QUADRO")==0)  DeleteBox(); /* удаляем прямоугольник (на случай если он все еще есть) */
 
DrawBox(); /* рисуем прямоугольник */
 
Sleep(Timer*1000); /* ждем 15 секунд */
 
PrevPrice=Bid; /* запоминаем новую цену для новой проверки */
 
}
//----
   return(0);
  }
//+------------------------------------------------------------------+
void DrawBox()
{
     ObjectCreate("QUADRO",OBJ_RECTANGLE,0,Time[5],Close[0]-10*Point,Time[0],Close[0]+10*Point);
     ObjectSet("QUADRO",6,Coler);
     return;
}
//-------------------------------------------------------------------+
void DeleteBox()
{
      ObjectDelete("QUADRO");
      return;
}
これは例として、あなたのためのアドバイザーです。実験
 
ありがとうございました。
理由: