どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 589

 
Frostr:
もう、ガッツポーズです...。ヒストグラムがあるので、バーでやる方法が見つからなければ、それを使うしかないのですが...
ローソク足よりバーが好きなんですか?面白い質問だが、時間を無駄にするのは嫌だ。実は、バーもヒストグラムで、OpenとCloseのラベルがついています。
。 もし、これらのラベルの色を気にしないのであれば、H.Aと同様にこの方法を使うことができます。バーの幅をピクセルで計算し(可能です、確認しましたがヘルプのどこに書いてあるか覚えていません)、バー幅を設定すればよく、OpenとCloseはチャートのプロパティ で指定した色で表示されます。
 

CListNode クラスで オーバーライドされた仮想 Compare メソッドが無視されるのはなぜですか?

#include <Arrays\List.mqh>
#define  SIZE 10

class CData : public CObject
  {
public:
   int m_data;
  };

class CListNode : public CList
  {
public:
   virtual int Compare(const CObject *node,const int mode=0) const {
      int _test=1;
      return(_test);
   }
  };

int OnInit() {
        CListNode *node=new CListNode;
        if(CheckPointer(node)==POINTER_INVALID) {
           Print("Не могу создать объект");
           return(INIT_FAILED);
        }
        else Print("Объект создан, работаем дальше");

        MathSrand(GetTickCount());
        for(int i=0;i<SIZE;i++) {
           CData *data=new CData;
           if(data==NULL) {
              Print("Нет возможности получить указатель");delete node;return(INIT_FAILED);
           }
           printf("Узел %i, данные узла %i",i,data.m_data=MathRand());
           node.Add(data);
        }
        
        node.Sort(0);
        int _total=node.Total();
        for(int i=0;i<_total;i++) {
           CData *data=node.GetNodeAtIndex(i);
           if(data==NULL) {
              Print("Нет возможности получить указатель");delete node;return(INIT_FAILED);
           }
           printf("Узел %i, данные узла %i",i,data.m_data);
        }

        if(CheckPointer(node)==POINTER_DYNAMIC) {Alert("Удаляем объект");delete node;}
        else Alert("Non-dynamic object");
   return(INIT_SUCCEEDED);
}
デバッガで確認したところ、常にCObjectからのCompareが使用されていました。
 

こんにちは、こんな感じのEAを書きました。なぜ、ほぼ1秒ごとに売りシグナルが報告されるのですか?

//+------------------------------------------------------------------+

||Peresechenie TM.mq4 |||||||||</p

//| ポポフ ウラジミール

//| http://vk.com/id143715412 |

//+------------------------------------------------------------------+

#property copyright"Popov Vladimir"(ポポフ・ウラジーミル)。

#プロパティリンク "http://vk.com/id143715412"


double SellPrice;

double TakeProfit;

ダブルStopLoss。


extern string TimeFrame = "現在の時間枠";

extern int HalfLength = 20;

extern int Price = PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern inttern ATRPeriod = 100;

extern bool Interpolate = true;



double PriceHigh, PriceLow, PriceMiddle;

double HighesBuffer[];

double LowesBuffer[];

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int init()

{

if (Digits == 3 || Digits == 5)

{

TakeProfit *= 10;

StopLoss *= 10;

}

return(0)です。

}

//+------------------------------------------------------------------+

//| 専門家による初期化関数

//+------------------------------------------------------------------+

int deinit()

{





return(0)です。

}

//+------------------------------------------------------------------+

int start()

{

PriceHigh = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0)です。

PriceLow = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0)です。

PriceMiddle = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 0, 0)です。


if(アスク <= プライスロー)

{

Alert("買いのシグナル");

}

if(Bid >= PriceHigh)

{

Alert("売りのシグナル");

}

return(0)です。

}

//+------------------------------------------------------------------+

 

テスト後にレポートを自動保存することが可能かどうか教えてください。

ただ、自動モードでたくさんテスト実行し(GAを使わずに最適化でやる予定)、フルレポート(画像含む)をHDDに保存する必要があります。

 
tuner:

テスト後にレポートを自動保存することが可能かどうか教えてください。

ただ、自動モードでのテスト実行を多く行い(GAを使わずに最適化で行う予定)、フルレポート(画像含む)をHDDに保存する必要があるのです。


TesterStatistics( )関数とOnTester()関数があります。

見てみてください。

 
Pr0t0tip:

こんにちは、こんな感じのEAを書きました。なぜ、ほぼ1秒ごとに売りシグナルが報告されるのですか?



置き換えてみてください

if(Ask <= PriceLow)

 {

 Alert("Сигнал к покупке");

 }

 if(Bid >= PriceHigh)

 {

 Alert("Сигнал к продаже");

 }

 return(0);

int static flag=0;
if(Ask <= PriceLow && flag<1)

 {

 Alert("Сигнал к покупке");
flag=1;
 }

 else if(Bid >= PriceHigh && flag>-1)

 {

 Alert("Сигнал к продаже");
flag=-1;
 }
else flag=0;

 return(0);
 
Vinin:


TesterStatistics()関数と OnTester()関数があります。

見てみてください、参考になるかもしれません。


アドバイスありがとうございます。しかし、必要なのは画像付きの原形(htm)のレポートそのものなので、役には立たないようです。既成の解決策はないようです。テスターで指定した回数だけ「スタート」ボタンを押し、実行後は「レポート」タブに移動して結果をファイルに保存するスクリプトをautoitで作ってみる。
 

こんにちは!次の問題について助けてください:ビルド625から、Alert(...)、Print(...)、Comment(...)関数からの値が、MT4テスターのインディケータチャート上に表示されません。これらの値は、実際の取引またはデバッガのためのインディケータ起動中に表示されています。そのため、少なくともPrint(...)関数を用いて 履歴データ上のパラメータ変化を監視することは不可能になります。610回目のビルドでは、ターミナルの「エキスパート」タブにすべての値が表示されたので問題なかったです。

おそらく、MQL5と同様の他の方法でコードを作り直す必要があるのではないでしょうか?どうしたらいいのかわからない、まだ古いビルドを使わなければならない...。

 

こんにちは。 この問題に遭遇した方はまだいらっしゃいますか?

フォルダにいくつかのEAが入っているのですが、ターミナル(MT4、ビルド625)には入っていません。そして、端末にあるものは、フォルダにないのです。奇跡なのか?



 
Ale-xander:

こんにちは。 この問題に遭遇した方はまだいらっしゃいますか?

フォルダにいくつかのEAが入っているのですが、ターミナル(MT4、ビルド625)には入っていません。そして、端末にあるものは、フォルダにないのです。奇跡なのか?



奇跡は起きない。

File --> Open Data Folder --> 開いたウインドウで --> MQL4 --> とすると、いつものフォルダがそこにあります。フォーラムのメインページにあるこの記事へのリンクです。ただ、怠け者の私には無理です。