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

 
Stanislav Korotky:

そういえば、Renkoを愛用していらっしゃるんでしたね。
ご質問の内容から察するに、キャンバス上に形成されたリノにインジケータを適用したりEAを重ねたり することは不可能である、という前言はすでに誤り であるとお気づきになられているようです。
ばんざーい!!(笑

 
Nikolai Semko:

はい、できます。

テストスクリプトを添付します。

スクリプトの結果です。

これはインターフェイスの指標(ユーザーが手動で設定したもの)に対してのみ機能し、EAから作成されたものに対しては機能しません。せいぜいEAのソースコードにinludeを一つ入れて、仮想自動最適化を有効にする程度の作業です。現在、これはタンバリンダンスでのみ可能です(ソースコードの追加編集またはいくつかのデフォルト設定(現在の_Symbol/ Periodのみ)、これは常に動作するとは限りません)。

また、原理的に、IndicatorParameters関数が 最も重要な2つのメタ・パラメータを返さない理由は不明です。

キャンバス上のインジケーターやExpert Advisorについては、技術的にはすべて可能ですが、問題は、なぜそれをわざわざ行う必要があるのか、ということです。キャンバスの用途が違うのです。カスタム見積もりについては、指標と専門家が標準的な方法で統合されたレディメイドのソリューションがあります。

 

アドバイス - ウィジェットやシグナルでの利益はどのように正しく計算されるのでしょうか...。

先週は、というか最初の5日間の取引で1000%稼いだのですが、次の日


シグナルとウィジェットで1000%になりました。

だからそして、取引開始の2週目になると......。で、たったの+39%です。

よし~もう少しトレードしてみようかな~と、0を終了してバタンキュー。39%じゃなくて98%なんだけど...。上がって、+4000%になりました・・・。



それで、私は何%あるのですか?39なのか98なのか、それとも自分の目を信じるべきなのか、それはすべて4000%だ。

 
Stanislav Korotky:

これは、インターフェイス指標(ユーザーが手動で設定)に対してのみ機能し、Expert Advisorsから作成された指標に対しては機能しません。Expert Advisorのソースコードにincludeすることで、仮想自動最適化を有効にすることができます。現在、これはタンバリンダンスでのみ可能です(ソースコードの追加編集またはいくつかのデフォルト設定(現在の_Symbol/ Periodのみ)、これは常に動作するとは限りません)。

また、原理的に、IndicatorParameters関数が 最も重要な2つのメタ・パラメータを返さない理由は不明です。

キャンバス上のインジケーターやExpert Advisorについては、技術的にはすべて可能ですが、問題は、なぜそれをわざわざ行う必要があるのか、ということです。キャンバスの用途が違うのです。カスタム見積もりについては、指標と専門家が標準的な方法で統合されたレディメイドのソリューションがあります。

IndicatorCreate、iCustom、iMA、iMACD、i...の各関数を使用して作成されたインジケータであれば可能です。また、このインジケータは教師なし、つまりChartIndicatorAddを使用してどのチャートにもアタッチされていないため、このインジケータがあなたによって作成されていない場合、このインジケータのTFとシンボルを本当に知ることができないのです。もしそうなら、インジケータを作成してハンドルを取得した時点で、シンボルとTFを把握している必要があります。
自分のものでないなら、他人の筋に干渉するのは理屈に合わないし、特にこのインジケータはチャートにないもので、サービスである。
しかし、シンボルとTFがハンドルによって制御されるべきインジケータが、あなたによって書かれているが、あなたによって使用されていない、または教師なしで使用されている場合、その中に追加のバッファを作成し、そこに(例えばユニオンを通して)その現在のTFとシンボルが埋め込まれることができます。そうすれば、CopyBufferを使った 特殊な関数による単純なハンドルの処理でも、それが自分のインジケータかどうかがわかり、自分のものであれば、その現在のシンボルとTFを読み取ることができます。
しかし、IndicatorParametersにTFとsymbolを読み取る機能があれば、もっと簡単になると思うのは、私も同感です。この機能には明らかにそれが欠けている。不明なハンドルはすでにTFとシンボル以外のインジケーターの内容に完全にアクセスできるため、それがないことがセキュリティと関係しているとは考えにくい。

 
Aleksander:

アドバイス - ウィジェットやシグナルでの利益はどのように正しく計算されるのでしょうか...。

先週は、というか最初の5日間の取引で1000%稼いだのですが、次の日


シグナルとウィジェットで1000%になりました。

だからそして、取引開始の2週目になると......。で、たったの+39%です。

よし~もう少しトレードしてみようかな~と、0を終了してバタンキュー。39%じゃなくて98%なんだけど...。上がって、+4000%になりました・・・。



それで、私は何%あるのですか?39なのか98なのか、それとも自分の目を信じるべきなのか、それはすべて4000%だ。

そんな素朴な疑問に対する答えは、自己顕示欲を疑わざるを得ないほどだ。信じてほしい、間違っていてほしい、でも......。

 
Sergey Voytsekhovsky:

そんな素朴な疑問の答えに、思わず自己顕示欲の疑惑が頭をよぎる。信じてほしい、間違っていてほしい、でも......。

いや~、シグナルのサービスを 利用するのは本当に初めてです...。ある週はパーセンテージがあっちになったりこっちになったりして、次の週にはまた0%になるのか?

私は認知的不協和に陥ります。あるものを見て、次に別のものを見ると、何を信じればいいのか?

ウィジェットでパーセンテージを計算する方法は?

Торговые сигналы для MetaTrader 5
Торговые сигналы для MetaTrader 5
  • www.mql5.com
Выберите подходящую торговую систему и оформите на неё подписку в пару кликов. Замониторенные счета сопровождаются подробной статистикой и торговой историей. Посмотрите обучающий видеоролик о том, как подписаться на Сигнал...
 

アップデート後、機能が動作しなくなった

ChartSetInteger(0,CHART_BRING_TO_TOP,0,true)

0のチャートに切り替わらないのですが、何がエラーになっているのでしょうか?

void OnStart()
  {
   long currChart,prevChart=ChartFirst();
   int z=0,limit=100;
     while(z<limit)
     {
      currChart=ChartNext(prevChart);
      string __simvol=ChartSymbol(currChart);
      ENUM_TIMEFRAMES __period=ChartPeriod(currChart);
      if(currChart==-1)
        {
         __simvol=Symbol();
         currChart=0;
        };
         if(!ChartSetInteger(currChart,CHART_BRING_TO_TOP,0,true))
        {
         //--- выведем сообщение об ошибке в журнал "Эксперты"
         Print(__FUNCTION__+", Error Code = ",GetLastError());
         //return(false);
        };
      Print(currChart, "  ", __simvol);

      Sleep(2000);
      if(currChart==0)
         {break;};
     prevChart=currChart;
      z++;

     };
  }
 

よろしくお願いします。

左のシンボルの成行注文の価格を知るにはどうしたらよいですか?


EAを例にして。

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

input int inTP = 100; // Размер тейка.

#define  Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  if (!OrdersTotal()) // Если нет текущих ордеров
  {
    OrderSend(_Symbol, OP_BUY, 0.1, Ask, 0, 0, Ask + inTP * _Point);  // Купили с тейком.
    OrderSend(_Symbol, OP_SELL, 0.1, Bid, 0, 0, Bid - inTP * _Point); // Продали с тейком.
  }
}


バックテスト結果

マークされたゼロの価格を知る必要があります。SL/TPに関しては、コメントから入手可能です。しかし、成行注文(スクリーンショットの緑色のゼロではない)をするとき、どこで取得するのでしょうか?


スリッページを推定するために必要です。例えば、端末で、いい値段があったら、買うをクリックする。取引が成立する。そして、押したときに端末に表示されていた価格と、取引価格がどれだけ違うかを把握したい。MT5では、簡単な分析もできない感じです


あるいは、例えば、Testerのラグ機能がEAの結果に与える影響を調査したい場合。そのためには、すべりがどの程度になったかを推定する必要があります。そして、それはできないのです。もっと言えば、できないのです。


質問ですが、MqlTradeRequestに0以外の値が設定されている場合、自分の成行注文の価格を知るにはどうしたらいいのでしょうか?

 
fxsaber:

質問ですが、MqlTradeRequestで成行注文の価格が0以外に設定されていた場合、どのように調べればいいのでしょうか?

市場を固定証拠金付きの指値に置き換えても、どうにもならないのでは?

 
SEM:

アップデート後、機能が動作しなくなった

が0チャートに切り替わらないのですが、何が問題なのでしょうか?

アップデート前は問題なく動作していましたが、アップデート後は1つのチャートに複数のパターンを持つウィンドウが表示されるようになりました。

//+------------------------------------------------------------------+
//| start function                                                   |
//+------------------------------------------------------------------+
void DeleteChart(void)
  {
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   bool errTemplate;
   while(i<limit)
     {
      currChart=ChartNext(prevChart);
      if(TimeFrame!=PERIOD_CURRENT)
        {
         ChartSetSymbolPeriod(prevChart,ChartSymbol(prevChart),TimeFrame);
        }
      errTemplate=ChartApplyTemplate(prevChart,Template+".tpl");
      if(!errTemplate)
        {
         Print("Error ",ChartSymbol(prevChart),"-> ",GetLastError());
        }
      if(currChart<0)
         break;
      Print(i,ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;
      i++;
     }
  }
//+------------------------------------------------------------------+
理由: