エラー、バグ、質問 - ページ 2533

 
Georgiy Merts:

あなたの場合、for()ループではなく、while()ループを編成してください。

点滅終了の何らかのサインを確認する。

でも、「周波数が変化する点滅」については、何か違和感が......。フライでエラーは出ていない、かなり頻繁に点滅しているはずだ。

確かに、グラフィックオブジェクトを 不可視にする代わりに、作成・削除 するのは賢明とは言えません。 しかし、オブジェクトを不可視にすることはできないようです...。となると、残るは削除のみ。

ご返信ありがとうございます、動作するようになりました。しかし、点滅がどのように起こるかを記録したのは、まさにカオスです。そして、LABELの色を黒に変更することで削除を置き換えたのです。



int i = 1;
   while(i > 0)  //true?
   {      
      if(!ObjectCreate(0,"Blink",OBJ_LABEL,0,0,0))
   {
      Print("Not Create! Error - ",GetLastError());
   }
   ObjectSetInteger(0,"Blink",OBJPROP_XDISTANCE,50+i);
   ObjectSetInteger(0,"Blink",OBJPROP_YDISTANCE,50);
   ObjectSetInteger(0,"Blink",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
   ObjectSetString(0,"Blink",OBJPROP_TEXT,"Test");
   ObjectSetString(0,"Blink",OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,"Blink",OBJPROP_FONTSIZE,18);
   ObjectSetDouble(0,"Blink",OBJPROP_ANGLE,0);
   ObjectSetInteger(0,"Blink",OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Red);
   ObjectSetInteger(0,"Blink",OBJPROP_BACK,false);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTABLE,true);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTED,false);
   ObjectSetInteger(0,"Blink",OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,"Blink",OBJPROP_ZORDER,0);
   
   Sleep(200);
   
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Black);
   
   Sleep(200);
   } 
 
Влад:

返信ありがとうございます!今は動いています。でも、点滅は同じカオスで、どうなるかを記録したものです。そして、削除をLABELの色を黒に変更することに置き換えたのです。


ティックによって異なることがお分かりいただけると思います。このコードはOnTick()内ではなく、OnTimer()内で実行する必要があります。

また、黒く着色する必要はありません。オブジェクトには可視性プロパティ(OBJPROP_TIMEFRAMES)があり、その可視性を管理すればよいのです。

オブジェクトが表示されなければならない時間枠の値は、一連のフラグによって設定される。この場合、0(OBJ_NO_PERIODS) - オブジェクトはどこにも表示されず、 OBJ_ALL_PERIODS- どこにでも表示される、を設定する必要があります。また、プロパティ値が変更された後は、ChartRedraw()でチャートを更新することを忘れないでください。

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Комбинация флагов видимости объекта определяет таймфреймы графика, на которых объект отображаем. Для установки/получения значения свойства OBJPROP_TIMEFRAMES можно использовать функции ObjectSetInteger()/ObjectGetInteger...
 
Влад:

返信ありがとうございます!今は動いています。でも、点滅は同じカオスで、どうなるかを記録したものです。そして、LABELの色を黒にすることで削除を置き換えた。

私のスクリプトを使ってみてください、うまくいきますよ。

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict

#include <ChartObjects\ChartObjectsTxtControls.mqh>
CChartObjectLabel Label;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Label.Create(0,"tst",0,0,50);
   Label.Description("Hello word!");
   Label.FontSize(14);
   bool show=true;
   while(!IsStopped())
     {
      color col=show ? clrRed : clrNONE;
      Label.Color(col);
      show=!show;
      ChartRedraw();
      Sleep(1000);
     }
  }
//+------------------------------------------------------------------+

script フォルダにあります。

 
Igor Makanu:

私のスクリプトを使ってみてください、うまくいきますよ。

sriftフォルダの中にある!?

Igorさん、MQL5で書かれているとのことですが、私は残念ながらMetatrader4を持っています。

 
Влад:

イゴール MQL5で書かれているとのことですが、私は残念ながらMetatrader4を持っています。

これはMQL4...はもう試したかもしれない ))))

 
やれやれ、そうですか(笑)。不躾で申し訳ないのですが、スクリプトの代わりにインジケータを使用することは可能でしょうか?インジケーターのテンプレートのガワをコピーして、TFを切り替えてもOKです。インジケータテンプレートにコピーして、コンパイルはうまくいっているのですが、チャートに貼り付けるとターミナルがハングアップしてしまいます。
 
テスト中のMQL5 Expert Advisorでフォワード最適化の結果を得る方法をご存知でしたら教えてください。この質問は、このスレッドに 投稿されたものです。 もしかしたら、ここで答えが出るかもしれません。
 
Влад:
やれやれ、そうですか(笑)。Igorさん、どうもありがとうございます!不躾で申し訳ないのですが、スクリプトの代わりにインジケータを使用することは可能でしょうか?インジケーターのテンプレートのガワをコピーして、TFを切り替えてもOKです。インジケーターのテンプレートにコピーしたところ、コンパイルはうまくいったのですが、チャートに貼り付けるとターミナルがハングアップしてしまいます。
ファイル:
Blink.mq4  3 kb
 
Igor Makanu:

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

 

サイト管理者向け。

どこにあるのか見つからず、ここに書いています。

プロフィールの販売者の詳細を変更したいのですが。

どうすればいいのでしょうか?

だいぶ前に出品者エリアにメッセージを書いたのですが、返事がありません。

他に方法があるのでは?