MQL5で学び、共に書く - ページ 4 1234567891011...46 新しいコメント Вячеслав 2010.01.09 04:17 #31 こんにちは!私は私のEAで正しく指標を呼び出している場合、誰かが私に教えてください? double perceptron(){ double w1 = x1 - 100; double w2 = x2 - 100; double w3 = x3 - 100; double w4 = x4 - 100; double a1 = iCustom(NULL,0, "カスタム CCI", 0); double a2 = iCustom(NULL,0, "カスタム CCI", 7) double a3 = iCustom(NULL,0, "Custom CCI", 14);//this is CCI double a4=iMA(NULL,0,21,0,0,0);//this isForce Index return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);}. Learning and writing together トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング Machine learning in trading: Slava 2010.01.11 19:40 #32 Avelox : こんにちは、私のEAでインジケータを正しく呼び出すことができたかどうか、どなたか教えてください。 double perceptron(){ double w1 = x1 - 100; double w2 = x2 - 100; double w3 = x3 - 100; double w4 = x4 - 100; double a1 = iCustom(NULL,0, "カスタム CCI", 0); double a2 = iCustom(NULL,0, "カスタム CCI", 7) double a3 = iCustom(NULL,0, "Custom CCI", 14);//this is CCI double a4=iMA(NULL,0,21,0,0,0);//this is Force Index return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);}. いいえ。 iCustomは、他のインジケーター呼び出し 関数と同様に、インジケーターハンドルを返します。ドキュメントを読む Вячеслав 2010.01.11 20:59 #33 ありがとうございました。じゃあ、こうだ!?double a2 = iCCI(NULL,0,7, 0);double a4=iForce(NULL,0,21,0,0);コンパイラは、以前のバージョンも受け入れます。 Slava 2010.01.12 09:52 #34 Alligatorのカスタムインジケータの例を見るhttps://www.mql5.com/en/code/9 そこに ハンドル(iMA)が取得される このハンドルから計算されるデータ量を監視する(BarsCalculated) データ部分をコピーする(CopyBuffer) Alligator 投票: 142010.01.26MetaQuotes Software Corp.www.mql5.com The Alligator Indicator is a combination of Balance Lines (Moving Averages). Roman Ignatev 2010.01.13 00:00 #35 Avelox : ありがとうございました。じゃあ、こうだ!?double a2 = iCCI(NULL,0,7, 0);double a4=iForce(NULL,0,21,0,0);コンパイラも前のバリアントで満足するようになる。 コンパイラはちょうどいい。4コンパイラのインデュークを移植する際に、このようなコード断片を手に入れました。 iMA1Handle=iMA(NULL,0,Period1/2,0,3,PRICE_CLOSE); // Не забыть потом перемножить на 2 iMA2Handle= iMA(NULL,0, Period1, 0,3,PRICE_CLOSE); SQPeriod=NormalizeDouble(MathSqrt(Period1),0); ... Бла-бла-бла ... 4ではこんな感じでした。 while (i>=0) { ExtMapBuffer2[i]=2*iMA(NULL,0,PeriodX/2,0,3,PRICE_CLOSE,i); ExtMapBuffer3[i]= iMA(NULL,0, PeriodX,0,3,PRICE_CLOSE,i); ExtMapBuffer4[i]=ExtMapBuffer2[i]-ExtMapBuffer3[i]; i--; } i=i2; // Возврат i для расчёта значений индюка while (i>=0) { ExtMapBuffer1[i]=iMAOnArray(ExtMapBuffer4,0,NormalizeDouble(MathSqrt(PeriodX),0),0,3,i); ... Бла-бла-бла ...5ではiMAOnArrayがないのと、ベータ版からのincludeを使いたくないので、一行ずつ翻訳することはできませんでした。最初は2*iMaを転送したのですが...なぜゴミのような出力になるのかが分かりませんでした。私は頭にきていた。フォーラムに書き込むところでした。それでわかったんです。私の癖が出たんですね。コンパイラは、5で返されたハンドルのデータ型が Int(実際には数値)であり、2倍できることから、これを受け入れる。しかし、出力ハンドルは疑問であり、そのように動作することはありません Maxim V. Lisimenco 2010.01.13 10:48 #36 5にシステムを移行しようとし始めると、すぐにトラブルが発生する//+------------------------------------------------------------------+ //| GetInternet.mq5 | //| Copyright 2009, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #import "wininet.dll" int InternetAttemptConnect (int x); int InternetOpenA(string sAgent, int lAccessType, string sProxyName = "", string sProxyBypass = "", int lFlags = 0); int InternetOpenUrlA(int hInternetSession, string sUrl, string sHeaders = "", int lHeadersLength = 0, int lFlags = 0, int lContext = 0); int InternetReadFile(int hFile, int& sBuffer[], int lNumBytesToRead, int& lNumberOfBytesRead[]); int InternetCloseHandle(int hInet); #import "stdlib.ex5" #import input int Step = 300; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Comment("Старт..."); //--- return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- Comment(GetURL("http://www.forexremote.net")); } //+------------------------------------------------------------------+ //+----------------------------------------------------------------------------------------------------------+ //| Функция получения WEB страницы | //+----------------------------------------------------------------------------------------------------------+ string GetURL(string url) { int rv = InternetAttemptConnect(0); if(rv != 0) { Alert("Ошибка при вызове InternetAttemptConnect()"); return(""); } int hInternetSession = InternetOpenA("Microsoft Internet Explorer", 1, "", "", 0); if(hInternetSession <= 0) { Alert("Ошибка при вызове InternetOpenA()"); return(""); } int hURL = InternetOpenUrlA(hInternetSession, url, "", 0, 0, 0); if(hURL <= 0) { Print("Ошибка получения данных с узла!"); //fComment("Ошибка получения данных с узла!",true); InternetCloseHandle(hInternetSession); return(""); } int cBuffer[256]; int dwBytesRead[1]; string TXT = ""; while(!IsStopped()) { bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead); if(dwBytesRead[0] == 0) break; string text = ""; for(int i = 0; i < 256; i++) { text = text + CharToString(cBuffer[i] & 0x000000FF); if(StringLen(text) == dwBytesRead[0]) break; text = text + CharToString(cBuffer[i] >> 8 & 0x000000FF); if(StringLen(text) == dwBytesRead[0]) break; text = text + CharToString(cBuffer[i] >> 16 & 0x000000FF); if(StringLen(text) == dwBytesRead[0]) break; text = text + CharToString(cBuffer[i] >> 24 & 0x000000FF); } TXT = TXT + text; //Sleep(500); } InternetCloseHandle(hInternetSession); return(TXT); } //+----------------------------------------------------------------------------------------------------------+ //| Конец Функции получения WEB страницы | //+----------------------------------------------------------------------------------------------------------+ コンパイルは0件、スクリプトは動作しない:-) Rashid Umarov 2010.01.13 11:29 #37 maxandsoft :5へのシステム移行を試し始めると、即座にヒヤリとする コンパイルは0件、スクリプトは動作しない:-) スクリプトとはどういう意味ですか。コード内の機能から判断して、EAコードを公開されていますね。MQL4でトランジションを 見る Maxim V. Lisimenco 2010.01.13 12:00 #38 Rosh : スクリプトというのはどういう意味ですか。コード内の機能から判断して、EAコードを公開されていますね。MQL4でトランジションを 見る はい......EAです、もちろんそのままです。wininet.dllを使ってサーバーから応答を得る必要があります。 Rashid Umarov 2010.01.13 12:26 #39 maxandsoft : はい、まさにアドバイザーです、もちろん口頭で。wininet.dllを使ってサーバーから応答を得る必要があります。 これらの関数は、なるべくユニコード版を使用するようにしてください。MQL5では、Unicodeエンコードを採用しています。 Maxim V. Lisimenco 2010.01.13 13:10 #40 Rosh : これらの関数は、なるべくユニコード版を使用するようにしてください。MQL5では、Unicodeを使用しています。 ポイントは、デバッグ中にコンパイルすると、エラーも出ずにMQLエディタに戻されることです。また、チャートに引っ張っただけでは、チャート上に表示すらされません。 つまり、デバッグしてもEAを起動しても、どこにもエラーは出ないのです。 1234567891011...46 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
double perceptron()
{
double w1 = x1 - 100;
double w2 = x2 - 100;
double w3 = x3 - 100;
double w4 = x4 - 100;
double a1 = iCustom(NULL,0, "カスタム CCI", 0);
double a2 = iCustom(NULL,0, "カスタム CCI", 7)
double a3 = iCustom(NULL,0, "Custom CCI", 14);//this is CCI
double a4=iMA(NULL,0,21,0,0,0);//this isForce Index
return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
}.
こんにちは、私のEAでインジケータを正しく呼び出すことができたかどうか、どなたか教えてください。
double perceptron()
{
double w1 = x1 - 100;
double w2 = x2 - 100;
double w3 = x3 - 100;
double w4 = x4 - 100;
double a1 = iCustom(NULL,0, "カスタム CCI", 0);
double a2 = iCustom(NULL,0, "カスタム CCI", 7)
double a3 = iCustom(NULL,0, "Custom CCI", 14);//this is CCI
double a4=iMA(NULL,0,21,0,0,0);//this is Force Index
return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
}.
いいえ。
iCustomは、他のインジケーター呼び出し 関数と同様に、インジケーターハンドルを返します。ドキュメントを読む
ありがとうございました。じゃあ、こうだ!?double a2 = iCCI(NULL,0,7, 0);
double a4=iForce(NULL,0,21,0,0);
コンパイラは、以前のバージョンも受け入れます。
Alligatorのカスタムインジケータの例を見るhttps://www.mql5.com/en/code/9
そこに
ありがとうございました。じゃあ、こうだ!?double a2 = iCCI(NULL,0,7, 0);
double a4=iForce(NULL,0,21,0,0);
コンパイラも前のバリアントで満足するようになる。
コンパイラはちょうどいい。4コンパイラのインデュークを移植する際に、このようなコード断片を手に入れました。
4ではこんな感じでした。
5ではiMAOnArrayがないのと、ベータ版からのincludeを使いたくないので、一行ずつ翻訳することはできませんでした。最初は2*iMaを転送したのですが...なぜゴミのような出力になるのかが分かりませんでした。私は頭にきていた。フォーラムに書き込むところでした。それでわかったんです。私の癖が出たんですね。コンパイラは、5で返されたハンドルのデータ型が Int(実際には数値)であり、2倍できることから、これを受け入れる。しかし、出力ハンドルは疑問であり、そのように動作することはありません
5にシステムを移行しようとし始めると、すぐにトラブルが発生する
コンパイルは0件、スクリプトは動作しない:-)5へのシステム移行を試し始めると、即座にヒヤリとする
コンパイルは0件、スクリプトは動作しない:-)
スクリプトとはどういう意味ですか。コード内の機能から判断して、EAコードを公開されていますね。MQL4でトランジションを 見る
スクリプトというのはどういう意味ですか。コード内の機能から判断して、EAコードを公開されていますね。MQL4でトランジションを 見る
はい......EAです、もちろんそのままです。wininet.dllを使ってサーバーから応答を得る必要があります。
はい、まさにアドバイザーです、もちろん口頭で。wininet.dllを使ってサーバーから応答を得る必要があります。これらの関数は、なるべくユニコード版を使用するようにしてください。MQL5では、Unicodeエンコードを採用しています。
これらの関数は、なるべくユニコード版を使用するようにしてください。MQL5では、Unicodeを使用しています。
ポイントは、デバッグ中にコンパイルすると、エラーも出ずにMQLエディタに戻されることです。また、チャートに引っ張っただけでは、チャート上に表示すらされません。 つまり、デバッグしてもEAを起動しても、どこにもエラーは出ないのです。