アイカスタムジグザグ - ページ 2 12345 新しいコメント zsqabca 2007.07.26 07:26 #11 zig=icustom(NULL,0,'ZigZag',ExtDepth,ExtDeviation,ExtBackstop,2,i); Bogdan Caramalac 2007.07.26 11:31 #12 私もiCustom ZigZagで問題があります...新しいデータを与えてくれません...古いデータのままで止まっています。 Startからこの関数を呼び出しています。 double FindClosestZZ() { int i; double zzh; for (i=0;i<1000;i++) { zzh=iCustom(Symbol(),Period(),"ZigZag",12,5,3, 0, i); if (zzh!=0) return(zzh); } return(0); } Rashid Umarov 2007.07.26 18:52 #13 ターミナルMetaTrader 4でテスターを 読む:それは知られている必要があります Bogdan Caramalac 2007.07.27 16:47 #14 Rosh、これはテストではなく、LIVEで起きたことです......。何をやっても、その値は止まったままです・・・。 私は、.MT4の前のバージョンからインジケータを取り、BetterZigZagにしました(画面上のジグザグは少し違いますが、それは私のせいではありません)。 Better Zig Zagは、さらにチャート上で何が起きても、同じ値を返しました。 これは4つの追加バッファを含んでいて、2つは一時的なもの(必要ない)、2つは使用可能なもので、時間上の実際の位置を表しています(ExtExtraBufferX、バッファ3 ; ExtExtraBufferY, バッファ4)。 画面上でインジケータが進行しても最後の値が変わらないのを見て、さらに無理やり、2つのグローバル変数に最後のジグザグ位置を書き込むようにインジケータを配置しました(EAは明示的にインジケータが画面上にあることを要求していました)。これもうまくいきませんでした。ここにコードを添付します。 //+------------------------------------------------------------------+ //| BetterZigZag.mq4 | //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- indicator parameters extern int ExtDepth=12; extern int ExtDeviation=5; extern int ExtBackstep=3; //---- indicator buffers double ExtMapBuffer[]; double ExtLowBuffer[]; double ExtHighBuffer[]; double ExtExtraBufferX[]; double ExtExtraBufferY[]; double ExtTempBufferX[]; double ExtTempBufferY[]; int extrapos=0; int Round(double i) { string s; int res; s=DoubleToStr(i,0); res=StrToInteger(s); return(res); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(7); //---- drawing settings SetIndexStyle(0,DRAW_SECTION); //---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer); SetIndexBuffer(1,ExtLowBuffer); SetIndexBuffer(2,ExtHighBuffer); SetIndexBuffer(3,ExtExtraBufferX); SetIndexBuffer(4,ExtExtraBufferY); SetIndexBuffer(5,ExtTempBufferX); SetIndexBuffer(6,ExtTempBufferY); SetIndexEmptyValue(0,0.0); //---- indicator short name IndicatorShortName("BetterZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int shift, back,lasthighpos,lastlowpos,index; double val,res; double curlow,curhigh,lasthigh,lastlow; //---- for(shift=Bars-ExtDepth; shift>=0; shift--) { index=Lowest(NULL,0,MODE_LOW,ExtDepth,shift); val=Low[index]; if(val==lastlow) val=0.0; else { lastlow=val; if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtLowBuffer[shift+back]; if((res!=0)&&(res>val)) ExtLowBuffer[shift+back]=0.0; } } } ExtLowBuffer[shift]=0.0; if(val!=0.0) ExtLowBuffer[index]=val; //--- high index=Highest(NULL,0,MODE_HIGH,ExtDepth,shift); val=High[index]; if(val==lasthigh) val=0.0; else { lasthigh=val; if((val-High[shift])>(ExtDeviation*Point)) val=0.0; else { for(back=1; back<=ExtBackstep; back++) { res=ExtHighBuffer[shift+back]; if((res!=0)&&(res<val)) ExtHighBuffer[shift+back]=0.0; } } } ExtHighBuffer[shift]=0.0; if(val!=0.0) ExtHighBuffer[index]=val; } //---- final cutting lasthigh=-1; lasthighpos=-1; lastlow=-1; lastlowpos=-1; for(shift=Bars-ExtDepth; shift>=0; shift--) { curlow=ExtLowBuffer[shift]; curhigh=ExtHighBuffer[shift]; if(curlow==0 && curhigh==0) continue; //--- if(curhigh!=0) { if(lasthigh>0) { if(lasthigh<curhigh) ExtHighBuffer[lasthighpos]=0; else ExtHighBuffer[shift]=0; } //--- if(lasthigh<curhigh || lasthigh<0) { lasthigh=curhigh; lasthighpos=shift; } lastlow=-1; } //---- if(curlow!=0) { if(lastlow>0) { if(lastlow>curlow) ExtLowBuffer[lastlowpos]=0; else ExtLowBuffer[shift]=0; } //--- if((curlow<lastlow)||(lastlow<0)) { lastlow=curlow; lastlowpos=shift; } lasthigh=-1; } } //---- merge 2 buffers lasthighpos=-1; lastlowpos=-1; for(shift=Bars-1; shift>=0; shift--) { if(shift>=Bars-ExtDepth) { ExtMapBuffer[shift]=0.0; ExtTempBufferX[shift]=0.0; ExtTempBufferY[shift]=0.0; ExtExtraBufferX[shift]=0.0; ExtExtraBufferY[shift]=0.0; } else { curlow=ExtLowBuffer[shift]; curhigh=ExtHighBuffer[shift]; //---- res=0; if(curlow!=0) { if(lastlowpos==-1) { res=curlow; lastlowpos=shift; } else { if(lasthighpos!=-1 && lastlowpos>lasthighpos) { res=curlow; lastlowpos=shift; } } } if(curhigh!=0) { if(lasthighpos==-1) { res=curhigh; lasthighpos=shift; } else { if(lastlowpos!=-1 && lasthighpos>lastlowpos) { res=curhigh; lasthighpos=shift; } } } //---- ExtMapBuffer[shift]=res; if (res!=0&&shift<10000000) { ExtTempBufferX[extrapos]=shift; ExtTempBufferY[extrapos]=res; extrapos=extrapos+1; } } } //arranging extras if (ExtTempBufferX[extrapos]>10000000) { extrapos=extrapos-1; } if (extrapos>=0&&extrapos!=1) { int maxpos=extrapos; int final; bool addmid=false; double swap=0; if (extrapos/2==Round(extrapos/2)) { final=Round(extrapos/2)-1; addmid=True; } else { final=Round(extrapos/2); addmid=false; } for (int xscan=0;xscan<=final;xscan++) { swap=ExtTempBufferY[xscan]; ExtExtraBufferY[xscan]=ExtTempBufferY[maxpos]; ExtExtraBufferY[maxpos]=swap; swap=ExtTempBufferX[xscan]; ExtExtraBufferX[xscan]=ExtTempBufferX[maxpos]; ExtExtraBufferX[maxpos]=swap; maxpos=maxpos-1; } if (addmid==true) { ExtExtraBufferX[final+1]=ExtTempBufferX[final+1]; ExtExtraBufferY[final+1]=ExtTempBufferY[final+1]; } GlobalVariableSet("ClosestZigZagX",ExtExtraBufferX[0]); GlobalVariableSet("ClosestZigZagY",ExtExtraBufferY[0]); maxpos=extrapos; }//if (extrapos!=0&&extrapos!=1) } //+------------------------------------------------------------------+ 私は、同じような問題を.Theで参照してください返される値は、画面上のものと同じではありませんが、それは変更されます。 パラボリックSARは このように呼び出します。 PSar=iCustom(NULL,0, "Parabolic",0.02,0.2,0,0) のように呼び出します。 このようになります。 削除済み 2007.07.28 16:15 #15 c0d3: icustomコマンドでジグザグインジケータの方向を決定しようとしています。 今のところ、こんな感じです。 ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0); ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0); チャートに線が引かれていますが、プログラムを実行するとZigZagHighとZigZagLowが共に0になってしまいます。 icustom関数でZigZagインジケータのトレンドを判断するにはどうしたらよいでしょうか? ありがとうございます。 削除済み 2007.07.28 16:15 #16 こんにちは 3つのバッファージグザグを投稿してください。 ありがとうございます。 ゲインズ博士 Bogdan Caramalac 2007.07.28 16:25 #17 dr_gaines: c0d3 です。 icustomコマンドでジグザグインジケータの方向を決定しようとしています。 今のところ、こんな感じです。 ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0); ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0); チャートに線が引かれていますが、プログラムを実行するとZigZagHighとZigZagLowが共に0になってしまいます。 icustom関数でZigZagインジケータのトレンドを判断するにはどうしたらよいでしょうか? ありがとうございます。 トレンドの判定はできません。最後のポイントの位置は、別のポイントが追加されるまで可変です。 zsqabca 2007.08.02 16:21 #18 dr_gaines: 嗨 能你们请张贴 3缓冲区之字形。 感谢 盖恩斯博士 ファイル: zigzag_1.mq4 7 kb zsqabca 2007.08.02 16:39 #19 TheEconomist: Rosh, 这发生了在上生动,不测试...我做无论什么,那价值留下粘住... 我甚至更改了之字形。从MT4的一个前的版本拿指物并使它成了一BetterZigZag(在屏幕上的之字形是一点的不同,但是那不因我对。)。 好一些的转弯急变归还了一样的价值,不管在图表上什么进一步发生了。 它包括4个额外的缓冲区,2暂时(不必須)并且2合用,它准时代表实际的地点(ExtExtraBufferX,缓冲区3;ExtExtraBufferY,缓冲区4)...(不必須,还有这样的价值,不管上什么进一步生发了)。 当我看了时最后价值仍然是一样的不指定物屏上正进行,我甚至远强迫了事情并且我把指放物在全球的变数写最后转弯/急变地点(ea是明地要求物在屏幕上)也这没工作,我是里附代码. //+------------------------------------------------------------------+ //| BetterZigZag.mq4| //+------------------------------------------------------------------+ 在比喻的SAR上我看相似的问题。 归还的价值不是在屏幕上喜欢一个, 它然而得到改变: 我叫了比喻的SAR象一样这: PSar=iCustom(0,0,“比喻”,0.02,0.2,0,0); 我得到的是这: 時間>=M30 zsqabca 2007.08.02 16:47 #20 時間>M30 ジグザグ=ベタージグザグ 12345 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Startからこの関数を呼び出しています。
私は、.MT4の前のバージョンからインジケータを取り、BetterZigZagにしました(画面上のジグザグは少し違いますが、それは私のせいではありません)。
Better Zig Zagは、さらにチャート上で何が起きても、同じ値を返しました。
これは4つの追加バッファを含んでいて、2つは一時的なもの(必要ない)、2つは使用可能なもので、時間上の実際の位置を表しています(ExtExtraBufferX、バッファ3 ; ExtExtraBufferY, バッファ4)。
画面上でインジケータが進行しても最後の値が変わらないのを見て、さらに無理やり、2つのグローバル変数に最後のジグザグ位置を書き込むようにインジケータを配置しました(EAは明示的にインジケータが画面上にあることを要求していました)。これもうまくいきませんでした。ここにコードを添付します。
私は、同じような問題を.Theで参照してください返される値は、画面上のものと同じではありませんが、それは変更されます。
パラボリックSARは このように呼び出します。
PSar=iCustom(NULL,0, "Parabolic",0.02,0.2,0,0) のように呼び出します。
このようになります。
icustomコマンドでジグザグインジケータの方向を決定しようとしています。
今のところ、こんな感じです。
ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0);
チャートに線が引かれていますが、プログラムを実行するとZigZagHighとZigZagLowが共に0になってしまいます。
icustom関数でZigZagインジケータのトレンドを判断するにはどうしたらよいでしょうか?
ありがとうございます。
3つのバッファージグザグを投稿してください。
ありがとうございます。
ゲインズ博士
icustomコマンドでジグザグインジケータの方向を決定しようとしています。
今のところ、こんな感じです。
ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0);
チャートに線が引かれていますが、プログラムを実行するとZigZagHighとZigZagLowが共に0になってしまいます。
icustom関数でZigZagインジケータのトレンドを判断するにはどうしたらよいでしょうか?
ありがとうございます。
トレンドの判定はできません。最後のポイントの位置は、別のポイントが追加されるまで可変です。
嗨
能你们请张贴 3缓冲区之字形。
感谢
盖恩斯博士
Rosh, 这发生了在上生动,不测试...我做无论什么,那价值留下粘住...
我甚至更改了之字形。从MT4的一个前的版本拿指物并使它成了一BetterZigZag(在屏幕上的之字形是一点的不同,但是那不因我对。)。
好一些的转弯急变归还了一样的价值,不管在图表上什么进一步发生了。
它包括4个额外的缓冲区,2暂时(不必須)并且2合用,它准时代表实际的地点(ExtExtraBufferX,缓冲区3;ExtExtraBufferY,缓冲区4)...(不必須,还有这样的价值,不管上什么进一步生发了)。
当我看了时最后价值仍然是一样的不指定物屏上正进行,我甚至远强迫了事情并且我把指放物在全球的变数写最后转弯/急变地点(ea是明地要求物在屏幕上)也这没工作,我是里附代码.
時間>=M30
時間>M30
ジグザグ=ベタージグザグ