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

 
Alexey Viktorov:

ストレートに条件を追加することができます。

または== 0である可能性が高い。あるいは、名前でオブジェクトを検索し、そのようなオブジェクトがない場合は、オブジェクトを作成するのがよいでしょう。そして、ボタンがクリックされたかどうかは関係ない。

したのですが
OBJPROP_STATE

やはりボタンがクリックされると変化します。

今のところ、この方法で解決しています。

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)
      {
      Sleep(1);
      name="Button 3";
      ObjectSetInteger(0,name,OBJPROP_STATE,true);
      return;
      }
 
Николай Никитюк:

こんにちは 2020.10.28_05:19:00 GMT+3です。LeManTrend_Indicator.mq5 のインジケータを4番目のバージョン .mq4 に翻訳しました。

インジケータを作りましたか?私はそれを構築した、それは同じようです - 私はちょうどこの指標をダウンロードする必要がありますhttps://www.mql5.com/ru/code/9096

BrainTrend1Sig LeManTrend

LeManTrend
LeManTrend
  • www.mql5.com
Индикатор определяет положение тренда на основе текущей цены и максимальных и минимальных цен за три периода.
ファイル:
 
MakarFX:
したのですが

を押しても変化する

今のところ、私はこの方法で解決しています。

一般的な問題とは?

 
Alexey Viktorov:

一般的なタスクは何ですか?

ボタンをクリックすると、オブジェクトが生成され、ボタンが
を受け取ります。
ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);

オブジェクトがあれば、ボタンを押すと、それが

OBJPROP_STATE,false

で、チャート上にオブジェクトがある限りtrue を維持する必要があります。

 
MakarFX:
ボタンがクリックされると、オブジェクトが生成され、ボタンは を受け取ります。

オブジェクトがあれば、ボタンを押すと、それが

で、チャート上にオブジェクトがある限りtrueを 維持します。

そして、描画前にプロパティを戻すだけ

   //--- обработка кнопки Создать трендовую линию Buy
   if(sparam=="Button 3")
      {

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)// Это лучше заменить на if(ObjectFind(ChartID(), "OrderBuy: "+Symbol()) >= 0);
     ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
      if(trigger_greateB==true)
         {
         Sleep(100);//А это зачем???
         trigger_greateB=false;
         ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
         //--- Определяем координаты
         ChartXYToTimePrice(0,xn,yn+20,window,dt_1,price_1);
         ChartXYToTimePrice(0,xn+100,yn-20,window,dt_2,price_2);
         //--- Создаем трендовую линию Buy
         TrendCreate(0,("OrderBuy: "+Symbol()),0,dt_1,price_1,dt_2,price_2,ColorUP,0,1,false,true,false,false,0);
         return;
         }
      }
 
しています......コードで確認できます。
 
MakarFX:
そして、私はそうします...あなたはコードで見ることができます

全てではありません。例で強調した

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)// Это лучше заменить на if(ObjectFind(ChartID(), "OrderBuy: "+Symbol()) >= 0);
     ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
これにより、チャート上に線がある場合にボタンを押しても固まらないようにしました。
 
Alexey Viktorov:

全てではありません。例で強調した

これにより、チャート上に線がある場合、ボタンを押したときに固着するのを防ぐことができます。

問題はどちらでもないのですが...ただ刺さればいいのですが、OBJ_BUTTON 自体は何もしなくてもクリック可能なのです。

ボタンを非アクティブにする必要があるのですが、私の理解ではそれは不可能です(

 
MakarFX:

問題はそこではないのですが...ただ刺さればいいのですが、OBJ_BUTTON 自体は何もしなくてもクリック可能なのです。

ボタンを非アクティブにする必要があるのですが、これは、私の理解では不可能です(

非アクティブ」または「クリックできない」とはどういう意味ですか?そして、その意味は?

ボタンがクリックされたように見せたい場合は、その行のtrueの代わりにfalseを記述し、その行を削除します。

         ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);

行を作成する前に、どのような...

 
Alexey Viktorov:

アクティブではない」「クリックできない」とはどういう意味ですか?そして、それが何のためにあるのか?

ボタンがクリックされたように見せたい場合は、その行のtrueの代わりにfalseを記述し、その行を削除します。

というのは、線ができる前ですが...。

OBJPROP_STATE,true

これが、ボタンを押した状態です。

は気にしないでください...もう関係ないですから。

ありがとうございます。