[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 289

 
TheXpert >> :

厳密には、そうではありません。しかし、非常に近い。

具体的には、どこの近くにあるのでしょうか?

以前の記事について、コードやロジックなどについての感想をお聞かせください。

>> よろしくお願いします。

 

ご清聴ありがとうございました。

EAはこのような感じです。

//+------------------------------------------------------------------+
| Bibliot.mq4|電子書籍で漫画(マンガ)を読むならコミック.jp
//| 著作権 © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "著作権 © 2009, MetaQuotes Software Corp."
#プロパティリンク "http://www.metaquotes.net"

#include <PointZigZag.mqh>.

int init()
{return(0);}。
int deinit()
{return(0);}。
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{PointZigZag()です。
Comment("Prod.-y21 = ",y21," ", "Pok.-x21 = ",x21))。
return(0)です。
}
//+------------------------------------------------------------------+


そして、そのファイルはこのようなものです。作成した端末で動作します。しかし、コンパイル時に「-Start function not found and cannot be run」と表示されます。

//+------------------------------------------------------------------+
//| PointZigZag.mqh|ポイントジグザグ.mqh|ポイントジグザグ...
//| 著作権 © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "著作権 © 2009, MetaQuotes Software Corp.
#プロパティリンク "http://www.metaquotes.net"
//+------------------------------------------------------------------+
| EX4インポート
//+------------------------------------------------------------------+
#import "PointZigZag.ex4"。

extern inttern ExtDepth = 12; //-------変数 ZigZag
extern inttern ExtDeviation = 5; //------- 変数 ZigZag
extern intBackstep = 3; //------- 変数 ZigZag
extern inttern ShiftBars = 2; //------- 変数 ZigZag
//------- 変数 ZigZag ------------------------------------------------.
double y3, y2, y1, zz;//.
int x3, x2, x1, sh;//.
double x31, x21, x11; // ジグザグ変曲点
double y31, y21, y11; // ジグザグ変曲点
double TimeZZ, TimeOO;
//------------------------------------------------------------------------------

double PointZigZag()
{y3=0;y2=0;y1=0;
sh=ShiftBars。
while (y3==0)
{zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh)とする。
if (zz!=0 && zz!=EMPTY_VALUE)
{if (y1==0) { x1=sh; y1=zz; }.
else if (y2==0) { x2=sh; y2=zz; }.
else if (y3==0) { x3=sh; y3=zz; }}sh++;
}
if (高値[x1]>高値[x2])
{x11=High[x1]; x21=Low[x2]; x31=High[x3]です。
y11=0;y21=0;y31=0;TimeZZ=Time[x2];
}else
{y11=Low[x1]; y21=High[x2]; y31=Low[x3]である。
x11=0;x21=0;x31=0;TimeZZ=Time[x2];}

}
#インポート
//+------------------------------------------------------------------+
 

私は専門家ではありませんが、ライブラリファイルは別にコンパイルする必要はないでしょう。そのため、「Startfunction not found and cannot be run」というメッセージが表示されます。ライブラリファイルは、EAをコンパイルする際に自動的にコードに含まれ、コンパイルされます(Start関数がある場合)。

さらにそれは私にはわからない。import "PointZigZag.ex4 "と#importをコメントアウトすることをお勧めします。動作するはずです。

 

それよりも、EA.に全部まとめて、他は全部捨ててしまえ。

//+------------------------------------------------------------------+
//| Библиот.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

extern int ExtDepth = 12; //------- переменные ZigZag
extern int ExtDeviation = 5; //------- переменные ZigZag
extern int ExtBackstep = 3; //------- переменные ZigZag
extern int ShiftBars = 2; //------- переменные ZigZag
//------- переменные ZigZag ------------------------------------------
double y3, y2, y1, zz;//
int x3, x2, x1, sh;//
double x31, x21, x11; // Точки перегиба ZigZag
double y31, y21, y11; // Точки перегиба ZigZag
double TimeZZ, TimeOO;
//------------------------------------------------------------------------------

int init()
{return(0);}
int deinit()
{return(0);}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{ PointZigZag();
Comment("Прод.-y21 = ", y21," ","Пок.-x21 = ", x21);
return(0);
}
double PointZigZag()
{ y3=0; y2=0; y1=0;
sh= ShiftBars;
while ( y3==0)
{ zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if ( zz!=0 && zz!=EMPTY_VALUE)
{if ( y1==0) { x1= sh; y1= zz; }
else if ( y2==0) { x2= sh; y2= zz; }
else if ( y3==0) { x3= sh; y3= zz; }} sh++;
}
if (High[ x1]>High[ x2])
{ x11=High[ x1]; x21=Low[ x2]; x31=High[ x3];
y11=0; y21=0; y31=0; TimeZZ=Time[ x2];
}else
{ y11=Low[ x1]; y21=High[ x2]; y31=Low[ x3];
x11=0; x21=0; x31=0; TimeZZ=Time[ x2];}

}
//+------------------------------------------------------------------+
 
granit77 >> :

あるいは、Expert Advisorにまとめて、残りはすべて捨ててしまうのがベターでしょう。

これは、すべて理解できる。でも、それは抽象的な例でしたね。

単純に、他の目的のためにいろいろな機能をライブラリ化して、それを使いたいのです。

何が原因なのか、もう少し考えてみてください。>> ありがとうございました。

 
gvi2504 >> :

これは、すべて理解できる。でも、それは抽象的な例でしたね。

ただ、他の目的のためにいろいろな機能をライブラリ化して、それを使いたいですね。

何が原因なのか、もう一度考えてみてください。>> ありがとうございました。

ご指摘ありがとうございます。最後の文章がとても気に入ったので、お返しします。私の推測では、ライブラリファイルが正しく書かれていない、#includeと#importがあり、組み込み関数がある。バターのような味わいです。捨てて、教科書を読んで、もう一度書いてみてください。

 

皆さんは、例えば1年の範囲でEAをテストする場合、どのようにされているのでしょうか?いろいろな情報を読みましたが、私のM1チャートが2009年3月5日よりも先に進めないのはどうしようもありません。従って、3月5日より前にテスト期間を設定することはできません。サービス→引用アーカイブで MTに引用を読み込もうとしたのですが、 うまくいきません。手動スクロールも効きません...。これは証券会社のテクニカルサポートから聞いた話です。


"残念ながら、Metaquotesはディーリングセンターに対して特別なプログラム、いわゆる「ヒストリカルサーバー」を提供していないため、こうした制約があります。また、「サービス-アーカイブ」メニューを選択し、「ダウンロード」をクリックすると、MetaQuotesサーバーのヒストリデータがダウンロードされるという警告が表示されます。

p.s. いくつかのディーリングセンターでは、MetaQuotesで特定の証券会社のデータを(制限なく)ダウンロードできるようにしようとしています。 しかし、今のところ、彼らはこのサービスをMT5で利用できるようにすることを約束しているだけです。


また、Expert Advisorをロングランで確認したい場合はどうすればいいのでしょうか?

 
Noterday >> :

皆さんは、例えば1年の範囲でEAをテストする場合、どのようにされているのでしょうか?いろいろな情報を読みましたが、私のM1チャートは2009年3月5日よりも先に進むことができないので、どうすることもできません。従って、3月5日より前にテスト期間を設定することはできません。サービス→引用アーカイブでMTに引用を読み込もうとしましたが、役に立ちません。手動スクロールも効きません...。これは証券会社のテクニカルサポートから聞いた話です。


"残念ながら、Metaquotesはディーリングセンターに対して特別なプログラム、いわゆる「ヒストリカルサーバー」を提供していないため、こうした制約があります。また、「サービス-アーカイブ」メニューを選択し、「ダウンロード」をクリックすると、MetaQuotesサーバーのヒストリデータがダウンロードされるという警告が表示されます。

p.s. いくつかのディーリングセンター(私たちもその中のひとつです)が、MetaQuotesで特定の証券会社のデータを(無制限に)ダウンロードできるようにしようとしています。 しかし、今のところ彼らはこのサービスをMT5で利用可能にすることを約束するだけです」。


また、長時間EAを確認したい場合はどうすればよいのでしょうか?

また、MT5では予想通りではなく、М1をベースに他のTFが計算されます(それらの履歴はМ1のみ) まあ、窓を大きくして MetaQuotesから ダウンロードすればいいのですが、そうでなければどうしようもありません。開始日やMQ以前にMTを起動しておらず、自分のムーブを保存していない場合、まさか。

誰が保存していたかというと、MT-2以降も保存している人がいるんです。

(MT-2以前のことは、FXをあまりやっていなかったので、すみませんがわかりません)。

 
履歴をロードし、少なくともn1...の「始値」でExpert Advisorをテスト(書き込み)します。
 
rid >> :
afの「始値」でのEAの履歴読み込みと(書き込み)テスト、少なくともn1...

はい、確かにテストを開始しました :)でも何か、そんなごたごたがあるから、システムが姿を見せないような気がするんです。もしかしたら、そのようなデータではインジケータが正しく計算されないとか・・・特に分単位で設計されたシステムなので。とにかくありがとうございました。