オーダーを探すという作業 - ページ 13 1...67891011121314 新しいコメント Dmitry Fedoseev 2015.08.16 18:57 #121 Vladimir Pastushak: ああ、誰かもっといい方法を知っている人がいるんじゃないかと思ったんだ. double Max1=0; double Max2=0; int Ticket1=0; int Ticket2=0; int t=OrdersTotal(); for(int i=0;i<t;i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){ if(OrderType()==OP_BUY){ if(OrderOpenPrice()>Max1){ Max2=Max1; Ticket2=Ticket1; Max1=OrderOpenPrice(); Ticket1=OrderTicket(); } else if(OrderOpenPrice()>Max2){ Max2=OrderOpenPrice(); Ticket2=OrderTicket(); } } } } else{ return(false); } } 手っ取り早い方法はありません。もし、より速くしたいのであれば、EAのアルゴリズム全体を考える必要があり、もしかしたら、すべてのティックで 2つのボトムと2つのトップを探す必要性を取り除くことができるかもしれません。 Vladimir Pastushak 2015.08.16 18:59 #122 Dmitry Fedoseev: 手っ取り早い方法はありません。もし、より速くする必要があるなら、EAのアルゴリズム全体を考えるべきで、もしかしたら、すべてのティックで2つの下値と2つの上値を検索する必要をなくせるかもしれません。あなたのバリアントでは、データは等しくなります。つまり、1番目と2番目のトップオーダーは同じチケットになります。申し訳ありません. Vladimir Pastushak 2015.08.16 19:02 #123 こんなことをしました void OrdersInfo :: SearchTicketPriceType() { double price_max=0,price_min=0,price_max2=0,price_min2=0,op=0; int tc=-1; m_tick_upper = 0; m_tick_upper_ = 0; m_tick_lower = 0; m_tick_lower_ = 0; Counter=0; for(int i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==m_magic || m_magic==-1) if(OrderSymbol ()==m_symbol || m_symbol==NULL) if(OrderType()==m_type_order) { Counter++; op=OrderOpenPrice(); tc=OrderTicket (); //--- if(op>price_max) // Самый верхний ордер { price_max=op; m_tick_upper=tc; } if(op<price_min || price_min==0) // Самый нижний ордер { price_min=op; m_tick_lower=tc; } if(tc!=m_tick_upper) // Предпоследний верхний ордер if(op>price_max2) { price_max2=op; m_tick_upper_=tc; } if(tc!=m_tick_lower) if(op<price_min2 || price_min2==0) // Предпоследний нижний ордер { price_min2=op; m_tick_lower_=tc; } //--- } } Alexander Puzanov 2015.08.16 19:07 #124 Dmitry Fedoseev:普遍的なものを作ろうとするよりも、それぞれの仕事に必要な機能を、その仕事に特化して研ぎ澄ましたものを、シンプルに組み立てるのがいいのです。 100%ポータブルなソリューションを作ると、特定のタスクに適用したときに、どこかが冗長になるに違いない。ユニバーサルにしようとすればするほど、冗長性の尾が長くなってしまうのです。この冗長性がコーダーと製品の人生を複雑にしないように、時間的に止める価値がある。 Dmitry Fedoseev 2015.08.16 19:08 #125 Vladimir Pastushak:こんなことをしました 正常に動作しているか、確認しましたか? Vladimir Pastushak 2015.08.16 19:08 #126 Dmitry Fedoseev: 正常に動作しているか、確認しましたか? そう思います ))) ... Vladimir Pastushak 2015.08.16 19:12 #127 Alexander Puzanov: 100%移植可能な解決策を作っても、特定のタスクに適用すると、ある部分で冗長になるに違いない。ユニバーサルにしようとすればするほど、冗長性の尾は長くなります。この冗長性がコーダーと製品の人生を複雑にしないよう、時間的に止める価値があるのですなんとなくOOPに乗り換えようとしています。 OOPを褒めると、たくさんの関数を集めてカタログ化できると書かれていますが、以前はたくさんの関数を使ったファイルを持っていました...。全部ファイリングしてしまおうかと思ったのですが、何かの拍子に別冊が必要になると、図書館の目録の意味がなくなってしまうので......。 99%のケースで冗長性を回避するためには、やはりすべてのコードを手書きで書く必要があることがわかりました...。ゼロから...というのは Dmitry Fedoseev 2015.08.16 19:16 #128 Vladimir Pastushak: そう思います ))) ... ええ、ノーム Vladimir Pastushak 2015.08.16 19:17 #129 Dmitry Fedoseev: ああ、わかったよ このスレッドを作成したとき、私はそれを望んでいたのです、皆さんありがとうございます Dmitry Fedoseev 2015.08.16 19:18 #130 Vladimir Pastushak: このスレッドを作成することによって、私が得たかったものです。OTKではありません:)テスターまたはデモ口座での注文でテストしてください。一見、間違っているように見えても 1...67891011121314 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ああ、誰かもっといい方法を知っている人がいるんじゃないかと思ったんだ.
手っ取り早い方法はありません。もし、より速くしたいのであれば、EAのアルゴリズム全体を考える必要があり、もしかしたら、すべてのティックで 2つのボトムと2つのトップを探す必要性を取り除くことができるかもしれません。
手っ取り早い方法はありません。もし、より速くする必要があるなら、EAのアルゴリズム全体を考えるべきで、もしかしたら、すべてのティックで2つの下値と2つの上値を検索する必要をなくせるかもしれません。
あなたのバリアントでは、データは等しくなります。つまり、1番目と2番目のトップオーダーは同じチケットになります。
申し訳ありません.
こんなことをしました
普遍的なものを作ろうとするよりも、それぞれの仕事に必要な機能を、その仕事に特化して研ぎ澄ましたものを、シンプルに組み立てるのがいいのです。
100%
ポータブルなソリューションを作ると、特定のタスクに適用したときに、どこかが冗長になるに違いない。ユニバーサルにしようとすればするほど、冗長性の尾が長くなってしまうのです。この冗長性がコーダーと製品の人生を複雑にしないように、時間的に止める価値がある。
こんなことをしました
正常に動作しているか、確認しましたか?
100%
移植可能な解決策を作っても、特定のタスクに適用すると、ある部分で冗長になるに違いない。ユニバーサルにしようとすればするほど、冗長性の尾は長くなります。この冗長性がコーダーと製品の人生を複雑にしないよう、時間的に止める価値があるのです
なんとなくOOPに乗り換えようとしています。 OOPを褒めると、たくさんの関数を集めてカタログ化できると書かれていますが、以前はたくさんの関数を使ったファイルを持っていました...。全部ファイリングしてしまおうかと思ったのですが、何かの拍子に別冊が必要になると、図書館の目録の意味がなくなってしまうので......。
99%のケースで冗長性を回避するためには、やはりすべてのコードを手書きで書く必要があることがわかりました...。ゼロから...というのは
そう思います ))) ...
ああ、わかったよ
このスレッドを作成することによって、私が得たかったものです。
OTKではありません:)テスターまたはデモ口座での注文でテストしてください。一見、間違っているように見えても