さようならロボット - こんにちはマラスムス - ページ 5 123456789101112...16 新しいコメント 削除済み 2014.09.10 10:49 #41 次のことを提案します:インジケータ(変更なしで以前動作していたもの)をここか私の個人的なメッセージに添付すれば、私はそれを修正します。 pansa 2014.09.10 12:24 #42 Pavlick: 私は次のことを提案します:インジケータ(変更なしで以前動作したバリアント)をここまたは私の個人的なメッセージに添付してください、私はそれを修正します。 Pavlikさん、こんにちは。 それがバージョンです。 のオリジナルです。 コードをドラッグしてみる パンサー //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2.mq4 //| ラムダス - 変換のみ //+------------------------------------------------------------------+ #property copyright "著者 - OlegVS, GOODMAN" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Chartreuse #property indicator_color2 黄色 #property indicator_width1 2 #property indicator_width2 2 //---- 入力パラメータ extern int K=30; extern double Kstop=0.5; extern inttern Kperiod=150; extern inttern PerADX=14; extern inttern CountBars=350; extern intON=1; //ザックトンズ //---- バッファ double val1[]。 double val2[]。 //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int init() { 文字列のshort_name。 //----インジケータ線 IndicatorBuffers(2)です。 SetIndexStyle(0,DRAW_ARROW)を設定します。 SetIndexArrow(0,159)。 SetIndexStyle(1,DRAW_ARROW)を設定します。 SetIndexArrow(1,159)。 SetIndexBuffer(0,val1)を設定します。 SetIndexBuffer(1,val2)を設定します。 //---- return(0)です。 } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2| //+------------------------------------------------------------------+ int start() { if (CountBars>=Bars) CountBars=Bars; SetIndexDrawBegin(0,Bars-CountBars+PerADX)を設定します。 SetIndexDrawBegin(1,Bars-CountBars+PerADX)を設定します。 int i,shift,counted_bars=IndicatorCounted(); int i1,i2; double Range,AvgRange,smin,smax,SsMax,SsMin,SSP,price; bool uptrend,old; //---- if(Bars<=PerADX+1) return(0); //---- 初期値ゼロ if(counted_bars<PerADX+1)とする。 { for(i=1;i<=PerADX;i++) val1[CountBars-i]=0. for(i=1;i<=PerADX;i++) val2[CountBars-i]=0. } //---- for (shift = CountBars-PerADX; shift>=0; shift--) { SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)); Range=0とする。 AvgRange=0。 for (i1=shift; i1<=shift+SSP; i1++) {AvgRange=AvgRange+MathAbs (High[i1]-Low[i1]); } Range=AvgRange/(SSP+1)となります。 SsMax=High[shift]、SsMin=Low[shift]とする。 for (i2=shift;i2<=shift+SSP-1;i2++) { price=High[i2]とした。 if(SsMax<price) SsMax=price; price=Low[i2]です。 if(SsMin>=price) SsMin=price 。 } smin = SsMin+(SsMax-SsMin)*K/100; smax = SsMax-(SsMax-SsMin)*K/100 とする。 val1[shift]=0と する。 val2[shift]=0とする。 if (Close[shift]<smin)とする。 { uptrend = false とする。 } if (Close[shift]>smax)とする。 { uptrend = trueとする。 } if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*Kstop;}. if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*Kstop;}. old=uptrendです。 // zaktonのコード if ((シフト==0) && (サウンドオン==1)){。 if (val1[0] > 0) PlaySound("ReadyToExit.wav")を実行。 } if ((シフト==0) && (サウンドオン==1)){。 if (val2[0] > 0) PlaySound("ReadyToExit.wav")を実行。 } } return(0)です。 } //+-------------------------------------------------------- 信号システム(ASCTrend、その他モディフィケーション) Goodbye robot - hello [アーカイブ!】どんなエキスパートやインジケーターでも無料で書きます。 Boris 2014.09.10 12:46 #43 pansa: Pavlikさん、こんにちは。 それがバージョンです。 のオリジナルです。 コードをドラッグしてみる パンサー Sr.パンサ!なぜSRC ボタンを使わないのですか?Así mejor o Ud. tiene alguna duda?//+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2.mq4 //| Ramdass - Conversion only //+------------------------------------------------------------------+ #property copyright "Author - OlegVS, GOODMAN" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Chartreuse #property indicator_color2 Yellow #property indicator_width1 2 #property indicator_width2 2 //---- input parameters extern int K=30; extern double Kstop=0.5; extern int Kperiod=150; extern int PerADX=14; extern int CountBars=350; extern int SoundON=1; //zakton's //---- buffers double val1[]; double val2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line IndicatorBuffers(2); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,159); SetIndexBuffer(0,val1); SetIndexBuffer(1,val2); //---- return(0); } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2 | //+------------------------------------------------------------------+ int start() { if (CountBars>=Bars) CountBars=Bars; SetIndexDrawBegin(0,Bars-CountBars+PerADX); SetIndexDrawBegin(1,Bars-CountBars+PerADX); int i,shift,counted_bars=IndicatorCounted(); int i1,i2; double Range,AvgRange,smin,smax,SsMax,SsMin,SSP,price; bool uptrend,old; //---- if(Bars<=PerADX+1) return(0); //---- initial zero if(counted_bars<PerADX+1) { for(i=1;i<=PerADX;i++) val1[CountBars-i]=0.0; for(i=1;i<=PerADX;i++) val2[CountBars-i]=0.0; } //---- for (shift = CountBars-PerADX; shift>=0; shift--) { SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)); Range=0; AvgRange=0; for (i1=shift; i1<=shift+SSP; i1++) {AvgRange=AvgRange+MathAbs(High[i1]-Low[i1]); } Range=AvgRange/(SSP+1); SsMax=High[shift]; SsMin=Low[shift]; for (i2=shift;i2<=shift+SSP-1;i2++) { price=High[i2]; if(SsMax<price) SsMax=price; price=Low[i2]; if(SsMin>=price) SsMin=price; } smin = SsMin+(SsMax-SsMin)*K/100; smax = SsMax-(SsMax-SsMin)*K/100; val1[shift]=0; val2[shift]=0; if (Close[shift]<smin) { uptrend = false; } if (Close[shift]>smax) { uptrend = true; } if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*Kstop;} if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*Kstop;} old=uptrend; // zakton's code if ((shift == 0) && (SoundON == 1)) { if (val1[0] > 0) PlaySound("ReadyToExit.wav"); } if ((shift == 0) && (SoundON == 1)) { if (val2[0] > 0) PlaySound("ReadyToExit.wav"); } } return(0); } //+--------------------------------------------------------Buena suerte! Victor Nikolaev 2014.09.10 13:10 #44 pansa: Pavlikさん、こんにちは。 それがバージョンです。 のオリジナルです。 コードをドラッグしてみる パンサー インジケータは動作するが、開発者がその中で論理的な間違いを犯しているSSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)); Victor Nikolaev 2014.09.10 13:14 #45 //+------------------------------------------------------------------+ //| sample_execute_script.mq4 | //+------------------------------------------------------------------+ #import "user32.dll" int RegisterWindowMessageW(string MessageName); int PostMessageW(int hwnd, int msg, int wparam, string Name); void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo); #import int start() { int winHandle = WindowHandle( Symbol(), Period() ); // // // if(signal < 0 && trigl==true && buy == true) { StartScript(winHandle, "SchliesenProfitOrders" ); } // // // } void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false) { int MessageNumber = RegisterWindowMessageW("MetaTrader4_Internal_Message"); PostMessageW(hWnd, MessageNumber, 16, ScriptName); if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); } } void ClearConfigDialog() { Sleep(100); keybd_event(13, 0, 0, 0); } // // // return(0); ロシュが言っていたのはこのことだ。 削除済み 2014.09.11 00:25 #46 いい?//+------------------------------------------------------------------+ //| AltrTREND_Signal.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2_alert.mq4 | //| Ramdass - Conversion only | //+------------------------------------------------------------------+ #property copyright "Author - OlegVS, GOODMAN" #property strict #import "user32.dll" int RegisterWindowMessageA(uchar &lParam[]); int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]); void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo); #import #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 DeepSkyBlue #property indicator_color2 OrangeRed #property indicator_width1 1 #property indicator_width2 1 //---- input parameters extern bool Alert_message = true; extern int Time_alert_minutes = 60; // ????? ????? ?????????? ???? ??? ? 60 ?????. extern int K = 30; extern double Kstop = 0.5; extern int Kperiod = 150; extern int PeriodADX = 7;//14; extern int CountBars = 100; extern string script_name = "fPlayer"; //---- buffers double val1[]; double val2[]; double AlertTime; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator line IndicatorBuffers(1); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,241); IndicatorBuffers(2); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,242); SetIndexBuffer(0,val1); SetIndexBuffer(1,val2); if(CountBars>=Bars) CountBars=Bars; SetIndexDrawBegin(0, Bars - CountBars + PeriodADX ); SetIndexDrawBegin(1, Bars - CountBars + PeriodADX ); //---- return(0); } //+------------------------------------------------------------------+ //| AltrTrend_Signal_v2_2 | //+------------------------------------------------------------------+ int start() { int shift, counted_bars = IndicatorCounted(); //---- if(counted_bars<0) return(-1); //---- int i1, i2, t_per; double Range, AvgRange, smin, smax, SsMax, SsMin, SSP, price; bool uptrend, old; //---- if(Bars <=PeriodADX + 1) return(0); //---- for(shift = CountBars - PeriodADX ; shift >= 0; shift--) { SSP = MathCeil(Kperiod / iADX(NULL, 0, PeriodADX , PRICE_CLOSE, MODE_MAIN, 1)); Range = 0; AvgRange = 0; for(i1 = shift; i1 <= shift + SSP; i1++) { AvgRange = AvgRange + MathAbs(High[i1] - Low[i1]); } Range = AvgRange / (SSP + 1); //---- SsMax = High[shift]; SsMin = Low[shift]; for(i2 = shift; i2 <= shift + SSP - 1; i2++) { price = High[i2]; if(SsMax < price) SsMax = price; price = Low[i2]; if(SsMin >= price) SsMin = price; } //---- smin = SsMin + (SsMax - SsMin)*K / 100; smax = SsMax - (SsMax - SsMin)*K / 100; val1[shift] = 0.0; val2[shift] = 0.0; if(Close[shift] < smin) { uptrend = false; } if(Close[shift] > smax) { uptrend = true; } if(uptrend != old && uptrend == true) { val1[shift] = Low[shift] - Range*Kstop; } if(uptrend != old && uptrend == false) { val2[shift] = High[shift] + Range*Kstop; } old = uptrend; } //---- Alert if (Period()<Time_alert_minutes) t_per=Period(); else t_per=Time_alert_minutes; // ???? ??<Time_alert, ????? ????? ?????????? ???? ??? ? ??. if (Alert_message==true && CurTime()>AlertTime && val1[0]!=0.0) { Alert(Symbol()," +++ BUY !!! +++" , " //AltrTrend_Signal_v2_2_alert"); AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60; //PlaySound("payment.wav"); int winHandle = WindowHandle( Symbol(), Period() ); StartScript(winHandle, script_name); } if (Alert_message==true && CurTime()>AlertTime && val2[0]!=0.0) { Alert(Symbol()," +++ SELL !!! +++" , " //AltrTrend_Signal_v2_2_alert"); AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60; // PlaySound("payment.wav"); int winHandle = WindowHandle( Symbol(), Period() ); StartScript(winHandle, script_name); } return(0); } void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false) { char buf[]; StringToCharArray("MetaTrader4_Internal_Message", buf); int MT4InternalMsg = RegisterWindowMessageA(buf); StringToCharArray(ScriptName, buf); SendMessageA(hWnd, MT4InternalMsg, 16, buf); if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); } } void ClearConfigDialog() { Sleep(100); keybd_event(13, 0, 0, 0); } //+------------------------------------------------------------------+ pansa 2014.09.11 05:30 #47 Pavlick:いい? Pavlikさん、こんにちは。 あなたのコードをインストールしました。 完璧に動作します! あなたは素晴らしい才能の持ち主です。 壁を突き破った!? 素晴らしい仕事です。 を、信頼性の高い信号と 新たな地平を切り開く 今日はなんていい日なんだ インテージに特別な感謝を捧げたい。 選手招集の台本を書いたのは彼だ! しかし、才能のある人、優秀な人はいるものです。 クドカン! 今日は9/11/14! パンザ Renat Fatkhullin 2014.09.11 20:49 #48 Andrei01:私のくだらない警告のほとんどは、完全に合法的で正しく標準的な、関数への参照による変数の受け渡しのために発生します。 例を挙げてください。残念ながら、司会者はこれに対して有能かつ論理的な説明をすることができなかった。なぜなら、似たような名前がある場合、そこにいる誰かが他の構文で誤解をすることがあると言われているからである。 私がこのケースを正しく理解していれば、その答えは論理的かつ正しく、数十年以上にわたる継続的なプログラミングで学んだものでした。 誤ってコメントを消してしまい申し訳ありません。間違った場所をクリックしてしまったため、復元する機能がありません。 Andrei01 2014.09.12 03:41 #49 Renat:例を挙げてください。私がこのケースを正しく理解していれば、その答えは論理的かつ正しく、数十年以上にわたる継続的なプログラミングの中で苦しんできたものでした。//-------------------------------------------------------------------- #property indicator_chart_window //-------------------------------------------------------------------- int a=1,b=2; //-------------------------------------------------------------------- void start(){ int k=sum(a,b); Alert(k); } //-------------------------------------------------------------------- int sum(int& a, int& b){ return(a+b); } このエディターは、C言語の標準的で合法的で一般的な構成に対して、「'a'の宣言は4行目でグローバル宣言を隠す」、「'b'の宣言は4行目でグローバル宣言を隠す」という警告を発生させますが、関数内に新しい変数の宣言も、変数の重複を示唆するものもないので、本質的に間違っており無識なのです。 その結果、それほど大きくないプログラムコードでも、数百もの不適切な警告が発生してしまうのです。 pansa 2014.09.12 06:21 #50 Vinin: インジケータは動作するが、開発者がその中で論理的なミスを犯した Vininさん、こんにちは。 AltrTrend_Signal_v2_2.mq4 を確認しました。 で、論理エラーを発見 式中 : SSP=MathCeil (Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1)) 最後に1という下線が入っていますね は、どうあるべきだと思いますか? パンサー 123456789101112...16 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私は次のことを提案します:インジケータ(変更なしで以前動作したバリアント)をここまたは私の個人的なメッセージに添付してください、私はそれを修正します。
Pavlikさん、こんにちは。
それがバージョンです。
のオリジナルです。
コードをドラッグしてみる
パンサー
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2.mq4
//| ラムダス - 変換のみ
//+------------------------------------------------------------------+
#property copyright "著者 - OlegVS, GOODMAN"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Chartreuse
#property indicator_color2 黄色
#property indicator_width1 2
#property indicator_width2 2
//---- 入力パラメータ
extern int K=30;
extern double Kstop=0.5;
extern inttern Kperiod=150;
extern inttern PerADX=14;
extern inttern CountBars=350;
extern intON=1; //ザックトンズ
//---- バッファ
double val1[]。
double val2[]。
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
文字列のshort_name。
//----インジケータ線
IndicatorBuffers(2)です。
SetIndexStyle(0,DRAW_ARROW)を設定します。
SetIndexArrow(0,159)。
SetIndexStyle(1,DRAW_ARROW)を設定します。
SetIndexArrow(1,159)。
SetIndexBuffer(0,val1)を設定します。
SetIndexBuffer(1,val2)を設定します。
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2|
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+PerADX)を設定します。
SetIndexDrawBegin(1,Bars-CountBars+PerADX)を設定します。
int i,shift,counted_bars=IndicatorCounted();
int i1,i2;
double Range,AvgRange,smin,smax,SsMax,SsMin,SSP,price;
bool uptrend,old;
//----
if(Bars<=PerADX+1) return(0);
//---- 初期値ゼロ
if(counted_bars<PerADX+1)とする。
{
for(i=1;i<=PerADX;i++) val1[CountBars-i]=0.
for(i=1;i<=PerADX;i++) val2[CountBars-i]=0.
}
//----
for (shift = CountBars-PerADX; shift>=0; shift--)
{
SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1));
Range=0とする。
AvgRange=0。
for (i1=shift; i1<=shift+SSP; i1++)
{AvgRange=AvgRange+MathAbs (High[i1]-Low[i1]);
}
Range=AvgRange/(SSP+1)となります。
SsMax=High[shift]、SsMin=Low[shift]とする。
for (i2=shift;i2<=shift+SSP-1;i2++)
{
price=High[i2]とした。
if(SsMax<price) SsMax=price;
price=Low[i2]です。
if(SsMin>=price) SsMin=price 。
}
smin = SsMin+(SsMax-SsMin)*K/100;
smax = SsMax-(SsMax-SsMin)*K/100 とする。
val1[shift]=0と する。
val2[shift]=0とする。
if (Close[shift]<smin)とする。
{
uptrend = false とする。
}
if (Close[shift]>smax)とする。
{
uptrend = trueとする。
}
if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*Kstop;}.
if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*Kstop;}.
old=uptrendです。
// zaktonのコード
if ((シフト==0) && (サウンドオン==1)){。
if (val1[0] > 0) PlaySound("ReadyToExit.wav")を実行。
}
if ((シフト==0) && (サウンドオン==1)){。
if (val2[0] > 0) PlaySound("ReadyToExit.wav")を実行。
}
}
return(0)です。
}
//+--------------------------------------------------------Pavlikさん、こんにちは。
それがバージョンです。
のオリジナルです。
コードをドラッグしてみる
パンサー
Sr.パンサ!なぜSRC ボタンを使わないのですか?Así mejor o Ud. tiene alguna duda?
Buena suerte!
Pavlikさん、こんにちは。
それがバージョンです。
のオリジナルです。
コードをドラッグしてみる
パンサー
インジケータは動作するが、開発者がその中で論理的な間違いを犯している
いい?
いい?
Pavlikさん、こんにちは。
あなたのコードをインストールしました。
完璧に動作します!
あなたは素晴らしい才能の持ち主です。
壁を突き破った!?
素晴らしい仕事です。
を、信頼性の高い信号と
新たな地平を切り開く
今日はなんていい日なんだ
インテージに特別な感謝を捧げたい。
選手招集の台本を書いたのは彼だ!
しかし、才能のある人、優秀な人はいるものです。
クドカン!
今日は9/11/14!
パンザ
私のくだらない警告のほとんどは、完全に合法的で正しく標準的な、関数への参照による変数の受け渡しのために発生します。
例を挙げてください。
残念ながら、司会者はこれに対して有能かつ論理的な説明をすることができなかった。なぜなら、似たような名前がある場合、そこにいる誰かが他の構文で誤解をすることがあると言われているからである。
私がこのケースを正しく理解していれば、その答えは論理的かつ正しく、数十年以上にわたる継続的なプログラミングで学んだものでした。
誤ってコメントを消してしまい申し訳ありません。間違った場所をクリックしてしまったため、復元する機能がありません。
例を挙げてください。
私がこのケースを正しく理解していれば、その答えは論理的かつ正しく、数十年以上にわたる継続的なプログラミングの中で苦しんできたものでした。
このエディターは、C言語の標準的で合法的で一般的な構成に対して、「'a'の宣言は4行目でグローバル宣言を隠す」、「'b'の宣言は4行目でグローバル宣言を隠す」という警告を発生させますが、関数内に新しい変数の宣言も、変数の重複を示唆するものもないので、本質的に間違っており無識なのです。
その結果、それほど大きくないプログラムコードでも、数百もの不適切な警告が発生してしまうのです。
インジケータは動作するが、開発者がその中で論理的なミスを犯した
Vininさん、こんにちは。
AltrTrend_Signal_v2_2.mq4 を確認しました。
で、論理エラーを発見
式中 : SSP=MathCeil (Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1))
最後に1という下線が入っていますね
は、どうあるべきだと思いますか?
パンサー