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

 
uncleVic:
理由はよくわからないのですが?結局のところ、あなたのプログラムがオブジェクトを削除した場合、そのオブジェクトについて知っていることになります。しかし、オブジェクトが削除され、プログラムもそのことを知らない場合、それはターミナルの責任です。

というのは、そんなに簡単なことではないのです(サービスデスクから消えてしまったのが残念なので、もう一度問題を説明します)。

ユーザーが誤ってチャートからオブジェクトを削除してしまった場合の処理を行う必要があります。しかし、このオブジェクトは削除してはいけないのです。例えば、リストやドロップダウンメニューの基板です。

そこで、OnChartEventのコードで、このイベントを処理し、コントロールを再描画する必要があります。

そのため、このコントロール内の他のオブジェクトをすべて削除する必要があります。このコントロールのトップオブジェクトをすべて削除する理由は、説明するまでもないでしょう。

つまり、このイベントを処理すると、アルゴリズムが深いループに入ることがわかったのです。スクリプトはオブジェクトを削除し、オブジェクトが削除されたというイベントを取得します。このイベントは、削除とレンダリングという処理を再度行う必要があるということです...要するに、アルゴリズムの混乱。

現在のCHARTEVENTセット内で修正する方法がわからない。そのため、私はスクリプトが誰の削除であるかを理解できるようにすることを提案しました。

コントロールに積極的に取り組むようになると、遅かれ早かれ自分で対処しなければならなくなるでしょう。

 
sergeev:

そんな簡単なものではないのです(サービスデスクから消えてしまったのは残念ですが、また問題を探ってみます)。

現在のCHARTEVENTのセットでこの状況を解決する方法がわかりません。だから、誰が削除したかをスクリプトが理解できるようにした方がいいんです。端末で(ずる賢いユーザーによって)、あるいはスクリプト自体で(同じプログラマーによって)。

積極的に操作するようになると、遅かれ早かれ直面したことでしょう。

私自身も遭遇したことがあります。アートライブラリーの最初のバージョン(操作 系)では、この仕組みが実装されていましたが、ある事情で削除されました(後日、復元する予定です)。

気の利いたことは何もない。すべてのコントローラーが自己復旧できるようにすること。基板は削除すると、その上にあるものすべてが削除されます。復元はイベントによって行われます。

 
uncleVic:


気の利いたことは何もない。すべてのコントローラーには、自己修復機能が必要です。基板を削除すると、その基板上のすべてのものが削除されます。その後、イベントによって修復が行われます。

まあ、それはそれとして、削除イベントを受信すると、コントロールが復元されるということです。

しかし、コントロールが自己回復(上位オブジェクトを削除)すると、すぐにまたイベントの削除を開始します。

とにかく、なぜ私はまた明白なことをわざわざ証明するのだろう :))御社では、標準ライブラリの 開発でマウスの移動イベントが必要になったとき、余計な質問をせずにその場で追加してくれました。ダブルスタンダードの実践が判明...。
しかし、これと同じ提案をユーザーからサービスデスクに送ったら、なぜそれが必要なのか、さらに1ヶ月間引っ張り回されると思います。

必要なんです!信じてください。MT5やMQL5の宣伝をするつもりはないことは、すでにサービスデスクに書きましたが、自分たちの利益のためにやっています。

MQLでは、あらゆる手段を講じて、迅速かつコンパクトに課題を解決しています。障害に直面したら、必ずサービスデスクに連絡するようにしています。しかし、そこで必ずしも理解を得られるとは限りません。

上にも書きましたが、制御ライブラリを自作されるのはとてもうれしいことです。少なくとも、あなたが理解しなくても解決しなければならない私たちの問題を、少しは垣間見ることができるはずです。

PS.
ビクター、めんどくさかっただけで、そんなに厳しく謝ることはないですよ。
ただ、御社には、MQLプログラマーの要望に耳を傾けていただきたいと思います。MQLでは、皆さんが想像している以上に様々な課題を解決しています。サービスデスクで、「はい、次のビルドで やります」という答えを聞きたいこともあります。

ご理解をお願いいたします。

 

sergeev:

...あ なたの会社がマウス移動のイベントを必要としたとき ...

大人」のプログラマーにどれだけ拳を折ってやらせたか、それを知っていれば......。
 
オリジナリティがないように聞こえるかもしれませんが、それでも......。皆さん、市場はいつ開くのでしょうか?どなたか、大まかなスケジュールだけでもご存知の方はいらっしゃいますか?
 
uncleVic:
大人」のプログラマーにどれだけ拳を折ってやらせたか、それを知っていれば......。
ビクター、あなたと私は同じ船に乗っているのです :))) 一緒になりましょう
 

取引 取引が行われるシンボル(SYMBOL_TRADE_EXECUTION_EXCHANGE、取引所取引)に対して、スクリプトに基づいてロングポジションを建てようとしているのですが、どうすればいいですか?

#include <Trade\Trade.mqh>                   
input double InpLots          =0.1;  
input int    InpTakeProfit    =500;
input int    InpSL            =300;
CTrade       myTrade;

void OnStart()
  {   
   double price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double tp=SymbolInfoDouble(_Symbol,SYMBOL_BID)+InpTakeProfit*_Point;
   double sl=SymbolInfoDouble(_Symbol,SYMBOL_BID)-InpSL*_Point;
   myTrade.SetTypeFilling(ORDER_FILLING_IOC);
   myTrade.PositionOpen(_Symbol,ORDER_TYPE_BUY,InpLots,price,0,0,"Test Buy");
   Sleep(500); // интервал задержки
   myTrade.PositionModify(_Symbol,sl,tp);
  }

エラーが発生するのですが。

  • 為替は0.10 EURUSD.eを0.00000で購入します。
  • 0.00000 [無効なストップ]で0.10 EURUSD.eを購入する為替に失敗しました。

つまり、私が買いたい価格を端末が見ていないのです。いろいろな価格を試してみましたが、やはり0.00000が表示されました。

MT4で同じようなスクリプトを同じ為替条件で動かしてみたところ、そこそこ動いたのですが...。MT5ではありませんが・・・。

エラーに鼻を向けてください。

 
denkir:
  • 0.00000 [無効なストップ]で0.10 EURUSD.eを購入する為替に失敗しました。

これはサーバーのメッセージであり、端末のメッセージではありません。この件に関しては、もう何も言うことはありません。

サービスデスクにリクエストを 送信する。

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
papaklass:

配列のオーバーフローエラーが発生するのはなぜですか?

まあ、普通は読む前に何か書き込むものですが...。
 
papaklass:

配列のオーバーフローエラーが発生するのはなぜですか?


また、ArrayResizeの呼び出しは どこにあるのでしょうか?
Документация по MQL5: Операции с массивами / ArrayResize
Документация по MQL5: Операции с массивами / ArrayResize
  • www.mql5.com
Операции с массивами / ArrayResize - Документация по MQL5