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

 
ログのみ - 再評価はExpert Advisorのパフォーマンスに影響しません。
など

以下はEA内のコードです(インジケータライン 0の等価性を判断するために多くの関数を試しました)。

一番シンプルなものを選びました。

if (Sp3Buffer[20]!=0 && Sp3Buffer[21]!=0 && Sp3Buffer[22]!=0 && Sp3Buffer[23]!=0 && Sp3Buffer[24]!=0)

ここに、テスターのログからプリントアウトしたインジケータの値があります。

[20]=34.40035703438407[21]=35.93782852396674[22]=35.97127995180715[23]=30.49164953708304[24]=32.90441573888087

ゼロはないのですが、インジケーターを見ると、明らかにゼロで、その値には

の指標もゼロとなる。

なんじゃそら

 

グラフにupdateコマンドを実行した後、ログにこんなくだりが出てきました。

2011.02.03 02:24:51 HistoryBase '#IBM' 1つの無効なバーを削除しました。
2011.02.03 02:24:50 HistoryBase '#IBM' 1つの無効なバーを削除しました。
2011.02.03 02:24:49 HistoryBase '#IBM' 1つの無効なバーを削除しました。
2011.02.03 02:24:48 HistoryBase '#IBM' 1つの無効なバーを削除しました。
2011.02.03 02:24:47 HistoryBase '#IBM' 1つの無効なバーを削除しました。
2011.02.03 02:24:46 HistoryBase '#IBM' 1つの無効なバーを削除しました。

などを1秒ごとに表示します。

TF セントリー

 
alexluek:
ログのみ - 再評価はExpert Advisorのパフォーマンスに影響しません。
など

以下はEA内のコードです(インジケータライン 0の等価性を判断するために多くの関数を試しました)。

一番シンプルなものを選びました。

ここに、テスターのログからプリントアウトしたインジケータの値があります。

ゼロはないのですが、インジケーターを見ると、明らかにゼロで、その値には

の指標もゼロとなる。

なんじゃそら

アレイを反転させるのを忘れていませんか?
 
sergey1294:
アレイを反転させるのを忘れていませんか?
インデックスの逆順はインジケーターでもExpert Advisorでも設定されているのですが、どこが悪いのかわかりません。ありがとうございました。
 

面白いことに、同じExpert Advisorでも、異なるコンピュータでは、異なる場所からチャートにテンプレートが追加されることが判明しました。

on 1 computer from MetaTrader 5 Profiles/Templates

on 2 computer from MetaTrader 5 ╱MQL5 ╱Files

ChartApplyTemplate(handle_Chart, "Sova15_30.tpl") に行を追加する。

どうしたんだろう、誰か教えてくれないかな?

 
最後にポジションを変更 した時刻を取得する方法を教えてください。
 
beginner:

最後にポジションを変更した時刻を取得する方法を教えてください。
https://www.mql5.com/ru/articles/138 find myposition.Time() there
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
削除済み  
beginner:

最後にポジションを変更した時刻を取得する方法を教えてください。

シンボルのどの取引が最後であったかを判断する。

OnTrade()でキャッチするか、ヒストリーでキャッチするかのどちらかです。

トロール
https://www.mql5.com/ru/articles/138 find myposition.Time() there

このように、私の記憶が正しければ、ポジションを開いた時刻が返されます(つまり、私の理解する限りでは、最初にポジションを開いたトレードの時刻が返されます)。

言及されている記事としては、 myhistoryと mydealが 役に立つかもしれません(もしかしたら他のものが合うかもしれません)

 
Interesting:

シンボルのどの取引が最後であったかを判断する。

OnTrade()でキャッチするか、ヒストリーでキャッチするかのどちらかです。

このように、私の記憶が正しければ、ポジションオープンの時刻が 返されます(つまり、私の理解では、ポジションをオープンした最初のトレードの時刻が返されます)。
はい、これが問題です。つまり、必要な商品の最後の取引を見つけ、その時間を取得する必要があるのですが、もっと簡単にできるでしょうか?
削除済み  
beginner:
そう、それが問題なのです。つまり、必要なシンボルの最後の取引を見つけ、その時間を取得する必要があるのですが、もっと簡単な方法はないでしょうか?

特定のポジション(シンボルとそのIdがわかっている)、またはすべてのポジションの一般的なケースに興味がありますか?

履歴を見たり、案件の分析(mydealを 使用)だけなら、おおよそそうです。

1.期間中の総取引 件数を取得し、その中からシンボルおよび/またはポジション形成に参加したものだけを抽出します。

if (HistorySelect(0,TimeCurrent()))
ulong d_ticket; // deal ticket
{
// Получить общее количество сделок в истории
int tot_deals = HistoryDealsTotal();

  for(int j=0; j<tot_deals; j++)
  {
  d_ticket = HistoryDealGetTicket(j);

    if(d_ticket>0)  
    {
    mydeal.Ticket(d_ticket)

      if(mydeal.Symbol()==SymbolTitle)
      {
      //формируем список сделок и анализируем его (если я правильно понял последняя сделка наша)
      }

    }   

  }

}

2.シンボルではなく、特定のポジションのIDでディールを選択する方が良い(その方が簡単で信頼性が高い)。

もっと正しくてシンプルなソリューションがあるはずですが。