//+------------------------------------------------------------------+//| OBJ_HLINE change properties on the fly.mq5 |//| Copyright 2021, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2021, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//--- input parametersinputstring InpName="HLine"; // Line name//--- an array for storing colors contains 14 elementscolor colors[]=
{
clrRed,clrBlue,clrGreen,clrChocolate,clrMagenta,clrDodgerBlue,clrGoldenrod,
clrIndigo,clrLightBlue,clrAliceBlue,clrMoccasin,clrWhiteSmoke,clrCyan,clrMediumPurple
};
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- create timerEventSetTimer(1);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- destroy timerEventKillTimer();
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---
}
//+------------------------------------------------------------------+//| Timer function |//+------------------------------------------------------------------+voidOnTimer()
{
//--- the number of colorsint size=ArraySize(colors);
//--- get a random valueint number=MathRand();
//--- get an index in the col[] array as a remainder of the integer devisionint i=number%size;
//--- set line colorObjectSetInteger(ChartID(),InpName,OBJPROP_COLOR,colors[i]);
ChartRedraw();
}
//+------------------------------------------------------------------+
Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
いつもありがとうございます!これで線は線のようになりましたね、うれしいです。ObjectDelete(0, name); だけは必要で、それ以外は一度描いた線は再描画されない。mql4でも同じです、忘れただけです。
私ならそうする
なんという戯言だろう。描画されたグラフィックオブジェクトは滑らかに動きます。例は各オブジェクトのヘルプに記載されています(水平線OBJ_HLINEの 場合)。
また、すでに描画されているオブジェクトの色、スタイル、匂いなど、あらゆるプロパティを変更することができます。手動で行うものであり、異論はない。しかし、Expert Advisorはデマークのポイントによってトレンドラインを描きます。ObjectDelete(0, name); という関数で、ポイントが変わると、古いトレンドラインが削除され、新しいトレンドラインが描か れます。この機能を使用しない場合、最初に描いた線は再描画されなくなります。これはナンセンスではなく、事実なのです。
マニュアルは論外。一方、Expert Advisorは、デマークのポイントによってトレンドラインを描きます。関数ObjectDelete(0, name); で、ポイントが変わると、古いトレンドラインが削除され、新しいトレンドラインが描か れます。この機能を使用しない場合、最初に描いた線は再描画されなくなります。これはナンセンスなことではなく、事実なのです。
ヘルプを読んだらどうですか?そして、例を実行します。
私ならそうする。
ありがとうございます。でも、私のバリアントはそのままにしておきます。ObjectDelete(0, name); の代わりに試してみますが。
ChartRedraw();
ヘルプを読めよ、頼むから!そして、例を実行します。
参考文献を読みました。あなただけが憤慨して、私は実践から書いているのです。もう一つは、ObjectDelet()の代わりにChartRedraw() を使用することですが、異論はないので確認します。これだけは、例を参考に指摘する必要があります。
準備書面を読みました。あなただけが言葉で憤慨し、私は実践から書いているのです。もう一つは、ObjectDelet()の代わりにChartRedraw() を使用することです、私は議論して確認しません。これだけは、例を参考に指摘する必要があります。
みんな普通にこのスレで相談してるし、相談されたら聞いてる。少なくとも、ヘルプを読み、サンプルを適用してください。どうか、人の話を聞くのが嫌なら、一切何も聞かないでください。
グラフィカルオブジェクト「Horizontal line」の任意のプロパティをその場で変更できる例。これを行うには、オブジェクトを削除する必要はありません。
コード
ありがとうございます。でも、私のバリアントはそのままにしておきます。ObjectDelete(0, name); の代わりに試してみますが。
完全に間違った判断です。グラフィカルオブジェクトの削除とチャートの更新は、決して相互に置き換えられるものではありません。
私の例では、まず、オブジェクト、特に、tfyuという名前のトレンドがあるかどうかをチェックします(ロシア語のキーボードレイアウトではnameです))。そして、存在しない場合は、トレンドを描きます。描画に失敗した場合は、メッセージを表示し、return false を返して関数を終了する。
それ以降は、トレンドがすでに存在しているか、描かれたばかりかにかかわらず、指定されたパラメーター、時間、座標価格、タイプ、太さ、その他追加したいものがすべて割り当てられる。その後、チャートは更新され、この関数は真を返します。
実行速度から言えば、トレンドを削除して新たに描くよりも、トレンドの有無を確認する方がコストがかからないだろう。
でも...最終的に決めるのはあなただし、あなたが右手の小指で左耳を掻くのが好きなら、私には止める権利はない。
そして、トレンドラインの 描画に戻る。コードが必要な場合
非常に悪いコードです。
私ならこうする。
私ならこうする。