記事「DoEasy - コントロール(第31部):ScrollBarコントロールのコンテンツのスクロール」についてのディスカッション - ページ 3 1234 新しいコメント leonerd 2024.06.02 08:41 #21 #include <DoEasy\Engine.mqh> CEngine engine; .... int h=37,w=100; string name=prefix+"EDIT_BUY_LIMIT"; x=309; y=124; if(!EditCreate(name,x,y,w-16,h,"",clrBlack,clrWhite)) { Alert(TextByLanguage(「編集要素の作成に失敗しました。,"Could not create Edit element \""),prefix+"EDIT_BUY_LIMIT"+", error: "+(string)GetLastError()); return false; } //+------------------------------------------------------------------+ //| 編集の作成| //+------------------------------------------------------------------+ bool EditCreate(const string name, const int x, const int y, const int w, const int h, const string text, const color clr_txt, const color clr_bg, const string font="Calibri", const int font_size=11) { if(!engine.CreateEditField(0,name,0,false,x,y,w,h,font_size,CORNER_LEFT_LOWER,ALIGN_CENTER,false)) { Print(DFUN,TextByLanguage("編集要素の作成に失敗しました!エラーコード="","Could not Edit element! Error code="),GetLastError()); return false; // --- ここで偽を返す } } leonerd 2024.06.07 19:52 #22 また、パネルにリンクしてエディットを作成する方法とは? leonerd 2024.06.08 11:49 #23 うわー、パネル描いちゃったよ、時間かけちゃったよ。そして、エディット・エレメントが作れないことが判明した...。 Artyom Trishkin 2024.06.08 13:49 #24 leonerd #: うわー、パネル描いちゃったよ、時間かけちゃったよ。そして、エディット・エレメントを作れないことが判明した...。 完全にコンパイル可能な例を見せてください。 leonerd 2024.06.08 14:31 #25 Artyom Trishkin #: 完全にコンパイル可能な例を見せてください。 そのようなオブジェクトがなければ、何をコンパイルすればいいのでしょう。 GRAPH_ELEMENT_TYPE_WF_RADIOBUTTONや他のオブジェクトはありますが、単純なEditはありません。エンジン・メソッドのCreateEditField()を使ってフィールドを作成することができますが、パネルにバインドする方法を教えてください。 CPanel *pnl=engine.CreateWFPanel("WFPanel",50,50,280,240,array_clr,200,true,true,false,-1,FRAME_STYLE_BEVEL,true,false); if(pnl!=NULL) { if(!pnl.CreateNewElement(GRAPH_ELEMENT_TYPE_WF_RADIOBUTTON,InpRbnShiftX+dist_rbtn_x*i,InpRbnShiftY,50,20,clrNONE,255,true,false)) .. } Artyom Trishkin 2024.06.08 14:57 #26 leonerd #:もし、そのようなオブジェクトがなければ、何をコンパイルすればいいのだろう。GRAPH_ELEMENT_TYPE_WF_RADIOBUTTONやその他いろいろありますが、単純なEditはありません。エンジン・メソッドのCreateEditField()を使ってフィールドを作成しましたが、パネルにバインドする方法を教えてください。 ライブラリはまだ開発中です。グラフィカル・エレメントはまだ半分もできていません。入力フィールドはまだありません。あなたが作ろうとしているのは標準的なものだけです。 入力フィールド」オブジェクトが利用可能になれば、すべてが機能するようになる。標準オブジェクトをフォームにバインドするのは現実的ではありません。 leonerd 2024.06.09 13:06 #27 わかりました。 また、このメソッドは正しく動作しません。 CArrayObj* pos_orders=engine.GetListAllOrdersByPosID(prev_pos_ticket); 最後の注文しか返してくれません。なぜか、注文をフィルタリングすると、削除された保留中の注文として扱われます。 ちょっとインプットしておきます。ポジションの最初の注文はリミッター(SELL STOP)でオープンされ、SL/TPを変更してポジションを何度か更新しました。その後、SLでクローズのイベントをキャッチしました。クローズしたポジションの 最初の注文を見つけたいのですが、上記の方法は正しく機能しません。 CEngine engine .... if(event.TypeEvent()==TRADE_EVENT_POSITION_CLOSED_BY_SL) { ulong prev_pos_ticket=event.TicketPositionPrevious(); // チケットの正しい位置はこちら CArrayObj* pos_orders=engine.GetListAllOrdersByPosID(prev_pos_ticket); // ここでは、受信した配列の中で、位置(sl)の最後の順序のみ } Artyom Trishkin 2024.06.09 14:24 #28 leonerd クローズしたポジションの 最初の注文を見つけたいのですが、上記の方法は正しく機能しません。 ポジションチケットとポジションIDは全く別のものです。チケットは常に変化し、ポジションを変更した取引を発生させた注文のチケットと同じになります。 MetaTrader 5の注文システムに関する記事やヘルプを読む必要があります。 leonerd 2024.06.11 20:13 #29 ClosePosition()上では、全くフィリングも記入されません。 Trading.mqh trade_obj.ClosePosition(ticket,comment,deviation) trade_obj には必要な記入があり、this.m_request.type_filling メソッドの中に入るとデフォルトの FOK になります。 Artyom Trishkin 2024.06.11 21:00 #30 leonerd ,comment,deviation) trade_obj に必要な記入があり、this.m_request.type_fillingメソッドの中に入るとデフォルトのFOKになる。 調べてみます。ありがとうございます。 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
うわー、パネル描いちゃったよ、時間かけちゃったよ。そして、エディット・エレメントを作れないことが判明した...。
完全にコンパイル可能な例を見せてください。
そのようなオブジェクトがなければ、何をコンパイルすればいいのでしょう。
GRAPH_ELEMENT_TYPE_WF_RADIOBUTTONや他のオブジェクトはありますが、単純なEditはありません。エンジン・メソッドのCreateEditField()を使ってフィールドを作成することができますが、パネルにバインドする方法を教えてください。
もし、そのようなオブジェクトがなければ、何をコンパイルすればいいのだろう。
GRAPH_ELEMENT_TYPE_WF_RADIOBUTTONやその他いろいろありますが、単純なEditはありません。エンジン・メソッドのCreateEditField()を使ってフィールドを作成しましたが、パネルにバインドする方法を教えてください。
ライブラリはまだ開発中です。グラフィカル・エレメントはまだ半分もできていません。入力フィールドはまだありません。あなたが作ろうとしているのは標準的なものだけです。
入力フィールド」オブジェクトが利用可能になれば、すべてが機能するようになる。標準オブジェクトをフォームにバインドするのは現実的ではありません。
わかりました。
また、このメソッドは正しく動作しません。
最後の注文しか返してくれません。なぜか、注文をフィルタリングすると、削除された保留中の注文として扱われます。
ちょっとインプットしておきます。ポジションの最初の注文はリミッター(SELL STOP)でオープンされ、SL/TPを変更してポジションを何度か更新しました。その後、SLでクローズのイベントをキャッチしました。クローズしたポジションの 最初の注文を見つけたいのですが、上記の方法は正しく機能しません。
ポジションチケットとポジションIDは全く別のものです。チケットは常に変化し、ポジションを変更した取引を発生させた注文のチケットと同じになります。
MetaTrader 5の注文システムに関する記事やヘルプを読む必要があります。
ClosePosition()上では、全くフィリングも記入されません。
Trading.mqh trade_obj.ClosePosition(ticket,comment,deviation)
trade_obj には必要な記入があり、this.m_request.type_filling メソッドの中に入るとデフォルトの FOK になります。
trade_obj に必要な記入があり、this.m_request.type_fillingメソッドの中に入るとデフォルトのFOKになる。