MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1785 1...177817791780178117821783178417851786178717881789179017911792...1953 新しいコメント Mihail Matkovskij 2021.12.03 21:39 #17841 Nerd Trader #: 見えない しかし、他の人は見ることができます(CHARTEVENT_OBJECT_CLICK) Tretyakov Rostyslav 2021.12.03 22:07 #17842 Nerd Trader #:華麗なものはすべてシンプルです。 私ならそうする void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(ObjectGetInteger(0,"button_bs",OBJPROP_STATE)) { int x =(int)lparam; int y =(int)dparam; datetime dt =0; double price =0; int window=0; if(id == CHARTEVENT_MOUSE_MOVE) { if(ChartXYToTimePrice(0,x,y,window,dt,price)) { if(ObjectFind(0,"H Line")!=window) { ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price); } else if(ObjectMove(0,"H Line",window,dt,price)) { ChartRedraw(0); } } } } else { ObjectDelete(0,"H Line"); } } Nerd Trader 2021.12.04 00:07 #17843 MakarFX #:私ならこうする。 同じ解答です。なぜなら、その行をクリックした後、最初の行を削除し、別の行を作成し、その行もカーソルに従ってクリックした後に削除されるようにする必要があるからです。こんなことをしました。 void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { datetime static dt = 0; double static price = 0; int static window = 0; string static line_name; if(id==CHARTEVENT_OBJECT_CLICK){ } //Нажатие кнопки создаёт line 1 if(sparam=="button"){ line_name = "line 1"; CreateLine(line_name, clrGreen); } //Нажатие на line 1 удаляет line 1 и создаёт line 2 if(sparam=="line 1"){ ObjectDelete(0,line_name); line_name = "line 2"; CreateLine(line_name, clrRed); } //Нажатие на line 2 удаляет line 2 if(sparam=="line 2"){ ObjectDelete(0,line_name); } } if(ObjectGetInteger(0,"button",OBJPROP_STATE)){ int x = (int)lparam; int y = (int)dparam; if(ChartXYToTimePrice(0,x,y,window,dt,price)){ if(id == CHARTEVENT_MOUSE_MOVE){ if(ObjectMove(line_name,0,0,price)) ChartRedraw(ChartID()); } } } } Mihail Matkovskij 2021.12.04 05:03 #17844 ボタンが押された-線ができる。ボタンが 押された-削除そんなに難しいことなんですか? また、表示・非表示が可能なので、常に作成・削除する必要がありません。 Tretyakov Rostyslav 2021.12.04 08:11 #17845 Nerd Trader #:また、解決策。なぜなら、この行をクリックした後、最初の行を削除し、別の行を作成し、その行もカーソルに追従してクリックした後に削除されるようにする必要があるからです。そうしました。 void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { datetime static dt = 0; double static price = 0; int static window = 0; string static line_name; if(id==CHARTEVENT_OBJECT_CLICK){ } //Нажатие кнопки создаёт line 1 if(sparam=="button"){ line_name = "line 1"; CreateLine(line_name, clrGreen); } //Нажатие на line 1 удаляет line 1 и создаёт line 2 if(sparam=="line 1"){ line_name = "line 2"; ObjectSetString(0,"line 1",OBJPROP_NAME,line_name); ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed); } //Нажатие на line 2 удаляет line 2 if(sparam=="line 2"){ ObjectDelete(0,line_name); } } if(ObjectGetInteger(0,"button",OBJPROP_STATE)){ int x = (int)lparam; int y = (int)dparam; if(ChartXYToTimePrice(0,x,y,window,dt,price)){ if(id == CHARTEVENT_MOUSE_MOVE){ if(ObjectMove(line_name,0,0,price)) ChartRedraw(ChartID()); } } } } そして、作成と削除の前に、オブジェクトのチェックを残すようにします законопослушный гражданин 2021.12.04 15:59 #17846 MakarFX #: 信号が全く来ないのですが、何かあったのでしょうか?0件の取引 なぜダブルなのか? 私の変数はこのような感じです。 // Параметры советника input string sParametersEA = ""; // Параметры советника input double Lot = 0.01; // Количество лотов input double LotControl = 0.01; // Контрольная лотность input int StopLoss = 30; // Уровень убытка input int TakeProfit = 30; // Уровень прибыли input int Deviation = 20; // Отступ цены входа input int Slippage = 3; // Проскальзование (в пунктах) input int Magic = 1; // Индентификатор советника input double K_Martin1 = 2.0; // Множитель мартин 1 input double K_Martin2 = 2.0; // Множитель мартин 2 input double K_Martin3 = 2.0; // Множитель мартин 3 input int OrdersClose = 5; // Ограничение лотности мартин1 input int OrdersClose2 = 5; // Ограничение лотности мартин2 input int DigitsLot = 2; // Точность лотности // Параметры индикатора input string ParametersMA = ""; // Параметры индикатора input int PeriodMA = 14; // Период мувинга input int MovingShift = 1; // Сдвиг мувинга // Глобальные переменные string AC; datetime Start; double dMA; double MaxMartinLot; double MaxMartinLot2; double openPrice; // цена открытия позиции //+----------------------------------------------- それが問題なのでは? Tretyakov Rostyslav 2021.12.04 16:08 #17847 законопослушный гражданин #:信号が全く来ないのですが、何かあったのでしょうか?0件の取引なぜダブルなのか?私の変数はこのような感じです。それが問題なのでは?削除してください。double openPrice; // цена открытия позиции とし、コード内でopenPrice(); Tretyakov Rostyslav 2021.12.04 16:13 #17848 законопослушный гражданин #:なぜダブルなのか? double - 10進数 int - 整数 законопослушный гражданин 2021.12.04 16:47 #17849 MakarFX #:削除してください そして、コード内で ありがとうございます! 信号が消えました законопослушный гражданин 2021.12.04 16:48 #17850 MakarFX #:double - 10進数int - 整数 はっきり 1...177817791780178117821783178417851786178717881789179017911792...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
見えない
しかし、他の人は見ることができます(CHARTEVENT_OBJECT_CLICK)
華麗なものはすべてシンプルです。
私ならそうする
私ならこうする。
同じ解答です。なぜなら、その行をクリックした後、最初の行を削除し、別の行を作成し、その行もカーソルに従ってクリックした後に削除されるようにする必要があるからです。こんなことをしました。
ボタンが押された-線ができる。ボタンが 押された-削除そんなに難しいことなんですか?
また、表示・非表示が可能なので、常に作成・削除する必要がありません。
また、解決策。なぜなら、この行をクリックした後、最初の行を削除し、別の行を作成し、その行もカーソルに追従してクリックした後に削除されるようにする必要があるからです。そうしました。
そして、作成と削除の前に、オブジェクトのチェックを残すようにします
信号が全く来ないのですが、何かあったのでしょうか?0件の取引
なぜダブルなのか?
私の変数はこのような感じです。
それが問題なのでは?
信号が全く来ないのですが、何かあったのでしょうか?0件の取引
なぜダブルなのか?
私の変数はこのような感じです。
それが問題なのでは?
削除してください。
とし、コード内でなぜダブルなのか?
double - 10進数
int - 整数
削除してください
そして、コード内でありがとうございます! 信号が消えました
double - 10進数
int - 整数
はっきり