オープンポジションをグループ分けする - ページ 8

 
Sergey Voytsekhovsky:

教えてください!記事https://www.mql5.com/ru/articles/567 には、以下のようなコードと記載があります。

しかし、標準パッケージでは見つけられませんでした。検索がうまくいかないのか、記事が古くなっているのか?

いや、間違えただけだ。

あちこちからコードの断片を引っ張ってきて、私たちが推測することになっているのです。

ご紹介したリストの末尾に項目を追加するコードは、標準ライブラリのリストの末尾に項目を追加するコードと非常によく似ています。

そして、あなたがどこかから何かを取り出したことが判明した......。

 
Sergey Voytsekhovsky:

しかし、「3つのループ」については、非常に理解しやすかったですし、ありがとうございます。 質の高いシンプルなソリューションが得られると、いつも「なぜ自分で気づかなかったのだろう」と思うほど、当たり前のことなのです。 ありがとうございます。

そこにもたくさんのエラーがあり、他人のコードの問題点を探すのは、私には絶対に無理です。しかも、突然のエラーを発見しても自分で直すわけで、報告してもメッセージを見て直してくれるとは限りません。そして、次のアップデートでは、また最初からやり直します。
 
Alexey Viktorov:
そこにもたくさんのエラーがあり、他人のコードから問題を探すのは、私には絶対に無理です。しかも、突然のエラーを発見しても自分で修正するわけで、報告してもメッセージを見て修正してもらえるかどうかわからない。そして、次のアップデートでは、また最初からやり直します。

本当にSBにバグが多いのか?それとも、料理本がないから猫が嫌いなだけ?

 
Artyom Trishkin:

いや、間違えただけだ。

あなたは、あちこちからコードの断片を "引っ張り"、私たちはそれを推測しなければならないのです。

今回ご紹介いただいたリストの末尾に項目を追加するコードは、標準ライブラリのリストの末尾に項目を追加するコードと非常によく似ています。

そして、あなたがどこからか何かを引っ張ってきたことがわかった...。

リストの末尾に項目を追加するコードは、標準ライブラリの ものです、その通りです。そして、記事からそのコードが見つからなかったので、「引っ張る」ようにしてみました。:-))

 
Artyom Trishkin:

SBには間違いが多いということを、本当にご存知なのでしょうか?それとも、料理本がないために猫が嫌いなだけ?

そういえば、アルチョム、ポジションの 一部決済の 問題、覚えてる?その後、この動作の理由を見つける代わりに、別の方法を追加したことを覚えていますか?

deviation=ULONG_MAXがどうしてメソッド全体を動かなくしたのか分かりませんが、 deviation=1000に置き換えたら全てうまくいきました。バグバグ...」スレッドに書いたのですが、話題が急拡大してしまい、このメッセージは奈落の底に落ちてしまい、気づかれなかったのです。その結果、別の方法が登場したわけですが、本当に必要なのでしょうか?そして今、どこにも誤りがないとどうして言い切れるのでしょうか?どうすれば、メッセージが目に留まると確信できますか?

 
Sergey Voytsekhovsky:

リストの末尾に項目を追加するコードは、標準ライブラリの ものです、その通りです。そして、記事からそのコードが見つからなかったので、「引っ張る」ようにしてみました。:-))

標準ライブラリを使ってオブジェクトで 表現されたデータを格納する場合、データは構造体ではなく、標準ライブラリのCObjectを ベースにしたオブジェクトにし、標準ライブラリのオブジェクトへのポインタを動的配列にして 格納するようにすればよい。ピースを抜き取る方法はありません。

Документация по MQL5: Стандартная библиотека / Базовый класс CObject
Документация по MQL5: Стандартная библиотека / Базовый класс CObject
  • www.mql5.com
Класс CObject обеспечивает всем своим потомкам возможность быть элементом связанного списка. Кроме того определяется ряд виртуальных методов для дальнейшей реализации в классах-потомках.
 
Alexey Viktorov:

そういえば、アルチョム、ポジションの 一部決済の 問題、覚えてる?この挙動の理由を見つける代わりに、後で別の方法を追加したことを覚えていますか?

deviation=ULONG_MAXがメソッド全体が動作しないことにどのように影響したのかわかりませんが、 deviation=1000に置き換えたらすべて正常に動作しました。バグバグ...」スレッドに書いたのですが、話題が急拡大し、このメッセージは忘却の彼方に落ちてしまい、気づかれなかったのです。その結果、別の方法が登場したわけですが、本当に必要なのでしょうか?そして今、どこにも誤りがないとどうして言い切れるのでしょうか? どうすれば、メッセージが目に留まると確信できますか?

いや、パーシャルクロージングの問題は記憶にないですね。あと、偏差値が操作に影響するのはどうかと思う。また、ULONG_MAX点に等しい最大偏差(偏差がないに等しい)が部分閉鎖にどのような影響を与えるのか想像もつかない。新方式の話も聞いていない。その方法とは?

そして、メッセージが失われないようにするために、それを見つけてポケットにコピーし、"MQL != C++, and should be ==" という議論のどこかで失われたに違いないというメモとともに再投稿してください。

 
Artyom Trishkin:

いや、部分閉鎖の問題は記憶にないですね。また、偏差値が動作に影響することについてはわかりません。また、最大偏差がULONG_MAX点(偏差なしと同等)であることが、部分閉鎖にどのような影響を与えるのか想像もつかない。新方式の話も聞いていない。どのような方法ですか?

そして、メッセージが失われないように、それを見つけてポケットにコピーし、「MQL != C++, and should be ==」という 議論の中でおそらくどこかに紛れ込んでしまったことを書き添えて再投稿してください。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

オープンポジションをグループに分割

アレクセイ・ヴィクトロフ, 2020.04.08 09:13

アルテムさん、部分的にポジションが閉じて しまう問題を覚えていますか?その後、そのような動作の原因を見つける代わりに、別の方法を追加したことを覚えていますか?

deviation=ULONG_MAXがメソッド全体の非機能にどのように影響して いるかは分かりませんが、 deviation=1000に置き換えたら全てうまくいきました。トピック "Bugs bugs... "で。 と書いたのですが、話題がどんどん膨らんでしまい、このメッセージは奈落の底に消えてしまい、気づかれなかったのです。その結果、別の方法が登場したわけですが、本当に必要なのでしょうか?そして今、どこにも誤りがないとどうして言い切れるのでしょうか?どうすれば、メッセージが目に留まると確信できますか?


 
Artyom Trishkin:

いや、部分閉鎖の問題は記憶にないですね。また、偏差値が動作に影響することについてはわかりません。また、最大偏差がULONG_MAX点(偏差なしと同等)であることが、部分閉鎖にどのような影響を与えるのか想像もつかない。新方式の話も聞いていない。どのような方法ですか?

そして、そのメッセージは失わ れることなく、見つけてポケットにコピーし、「MQL != C++, and whether it should be ==」という 議論の中でおそらくどこかに紛れ込んでしまったというメモとともに再投稿しています。

つまり、他のメッセージを後ろに追いやれということでしょうか。誰も持ち出さないようにする?それはおかしい。

私見では、各問題を個別のトピックとする別のフォーラムセクションを定義する方が良いと思います。トピック数は、1トピックあたりの投稿数よりはるかに少ない。そのため、トピック数が多いにもかかわらず、現在、個別の質問やバグレポートが プッシュされているほどには、トピックがプッシュされません。

 
Alexey Viktorov:

ポジションが本当に新しいかどうか」を判断するために、無理やりポジションを作るのはやめましょう。別の方法を探す。例えば、OnTradeTransactionの 中で。 また、配列のオーバーフローではなく、ArrayRemove関数を使用してみてください。

私の理解が正しければ、これは正しい方法だと思います。より経験豊富な同志として、そのようなフィルタが動作します新生児位置をキャッチする目的のために、アドバイスしてください?それとも、もっといい方法があるのでしょうか?

void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& request,
                        const MqlTradeResult& result)
 {
     if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
      {
         if(trans.type != TRADE_TRANSACTION_ORDER_DELETE)
            {
             if(HistoryDealGetInteger(trans.deal, DEAL_ENTRY) == DEAL_ENTRY_IN) // открылась позиция
               {