[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 257 1...250251252253254255256257258259260261262263264...631 新しいコメント Victor Nikolaev 2012.07.17 12:44 #2561 dzhini: ユーリ、先ほどの私の質問について、何か提案はないのか? スクリプトを確認する //+------------------------------------------------------------------+ //| VininI_CheckTime.mq4 | //| Copyright 2012, Vinin | //| vinin@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, Vinin" #property link "vinin@mail.ru" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- int TimeFrame[]={PERIOD_MN1, PERIOD_W1, PERIOD_D1, PERIOD_H4, PERIOD_H1,PERIOD_M30, PERIOD_M15, PERIOD_M5, PERIOD_M1}; int i, pos; for (i=0;i<ArraySize(TimeFrame);i++) { if (Period()<TimeFrame[i]) continue; pos=i; break; } for (i=pos+1;i<ArraySize(TimeFrame);i++) { int tmp=iBarShift(NULL, TimeFrame[i], Time[0], true); if (iTime(NULL, TimeFrame[i], tmp)<Time[0])tmp--; Print("TimeFrame: ", TimeFrame[i], " TimeOpen: ", TimeToStr(iTime(NULL, TimeFrame[i], tmp), TIME_MINUTES), " Bar: ", tmp); } //---- return(0); } //+------------------------------------------------------------------+ 結果 2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 1 TimeOpen: 00:00 Bar: 1057 2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 5 TimeOpen: 00:00 Bar: 212 2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 15 TimeOpen: 00:00 Bar: 70 2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 30 TimeOpen: 00:00 Bar: 35 2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 60 TimeOpen: 00:00 Bar: 17 2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 240 TimeOpen: 00:00 Bar: 4 pavelrev 2012.07.17 12:54 #2562 ひとことお願いします。 トレンドが変わると色が変わるマルチタイムフレームのMAを作りたいのですが、どうすればいいですか?他のタイムフレームからの平均価格表示も行いましたが、色が変わってしまう問題を解決する方法がわかりません。 //+------------------------------------------------------------------+ //| MA-MTFC.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Yellow #property indicator_color2 Green #property indicator_color3 Red //+------------------------------------------------------------------+ extern int MA_TF=1440; extern int MA_Period=89; extern int MA_Shift=0; extern int MA_Method=2; extern int MA_AP=0; //+------------------------------------------------------------------+ double Buffer_Yellow[]; double Buffer_Lime[]; double Buffer_Red[]; string Symb; double MA; int init() { Symb=Symbol(); //--- if (MA_TF != 1) if (MA_TF != 5) if (MA_TF != 15) if (MA_TF != 30) if (MA_TF != 60) if (MA_TF != 240) if (MA_TF != 1440) if (MA_TF != 10080) if (MA_TF != 43200) if (MA_TF != 0) return; //--- SetIndexBuffer(0,Buffer_Yellow); SetIndexBuffer(1,Buffer_Lime); SetIndexBuffer(2,Buffer_Red); //--- SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_LINE); //--- return(0); } int deinit() { return(0); } int start() { double MA; int counted_bars=IndicatorCounted(); int limit=Bars-counted_bars-1; if (limit>1) limit=Bars-1; for(int i=limit-1;i>=0;i--) { int pos=iBarShift(NULL, MA_TF, Time[i]); MA=iMA(Symb,MA_TF,MA_Period,MA_Shift,MA_Method,MA_AP,pos); Buffer_Yellow[i]=MA; Buffer_Lime[i]=MA; Buffer_Red[i]=MA; if(Buffer_Yellow[i]>Buffer_Yellow[i+1]) { Buffer_Red[i]=EMPTY_VALUE; } else if(Buffer_Yellow[i]<Buffer_Yellow[i+1]) { Buffer_Lime[i]=EMPTY_VALUE; } else { Buffer_Red[i]=EMPTY_VALUE; Buffer_Lime[i]=EMPTY_VALUE; } } return(0); } dzhini 2012.07.17 13:10 #2563 Roman.: これではいけない。テスターでは、このフクロウで使用する最小限のTFを始値で走らせる必要があります。フクロウはオープンオン分で走らせた方が良い。そして、TFを、明示的に処方した方が良いのです! Romanさん、Strategy Testerに表示させるインジケータを作ろうとしています。この指標は、分析に低い時間枠を使用しています。 削除済み 2012.07.17 13:14 #2564 FAQ: コード全体を表示して、"SRC"ボタンで貼り付けられるとよりよいでしょう。OK、この投稿にコードを追加してみます。 私は長い間トレードをしてきましたが、プログラミングを始めたのは、自分が何をプログラムしたいのかがはっきり分かってからです。 私の目標は、3つのスリップの上にあるすべてのバーのクローズで緑の矢印を取得し、3つのすべての下に閉じたすべての閉じたバーで、チャートにアタッチした後に閉じたバーに対してのみ赤の矢印を取得することです。今のバーには興味がない。 この矢印は、インジケータを貼り付けている間はチャートに表示され、その後取り外したい。 今はわかりやすくするためだけにスライダーを描いていますが、その後はEAから削除します。 現在、いくつかのスライダーと矢印がありますが、それらは現在表示されたり消えたりして、間違ったバーの上に表示されています。そこが理解できないのです。 106-111行目のjやj+1と、それらをどの要素に固定するかで、何か混乱があったのかもしれませんね。 ヒントを頂ければ幸いです。 なぜかSRCボタンが機能しません。 通常のmq4としてファイルを挿入してみます。 ファイル: t11.mq4 5 kb dzhini 2012.07.17 13:22 #2565 Vinin: スクリプトを確認する あなたのコードをいじって、私の目的に合うようにチェックを作ることにしました(H1で実行)。 for (i=0;i<10;i++) { int tmp=iBarShift(NULL, PERIOD_M15, Time[i], true); if (iTime(NULL, PERIOD_M15, tmp)<Time[i])tmp--; Alert(" TimeOpen: ", TimeToStr(iTime(NULL, PERIOD_M15, tmp), TIME_MINUTES), " Bar: ", tmp); } そして、ここにあるのは Victor Nikolaev 2012.07.17 13:25 #2566 dzhini:あなたのコードをいじって、私の目的に合うようにチェックを作ることにしました(H1で実行)。そして、これが私の得たものです。 価格を開く ことでテスターにチェックインするのです。だから、ローマンはすでにその方法を書いている。 dzhini 2012.07.17 13:35 #2567 つまり、ローエンドのTFでテスターを実行し、上位のTFに適合するようにインジケーターの他のすべてのロジックを修正するのですか? noobys 2012.07.17 13:38 #2568 ilunga: 直前のバーの終値 Close[1]. ありがとうございました。EAはティックで取引していますが、間隔(ローソク足)で取引するように変更できますか?すごく迷っているんです。 Dimka-novitsek 2012.07.17 14:23 #2569 このスレッドにごきげんよう!インジケータはコンパイルされるけど何も描画されないし、何が悪いのか、何をどう考えればいいのか、バグの探し方がわからない。とにかく、コードは動作し、最小限の変更で関数を追加しましたが、今は全く何もしません!!!! グリッドから始まる宣言のどこかに問題があるのかもしれないし、私が遅すぎてぐちゃぐちゃになっているのかもしれない...。効いていたんですねー。 //+------------------------------------------------------------------+ //| ИндюкДимонакомпил.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #import "user32.dll" int PostMessageA(int hWnd,int Msg,int wParam,string lParam); #import #define WM_COMMAND 0x0111 int delimiter = 0; #property indicator_chart_window double ВерхняячертаBuffer1[]; double НижняячертаBuffer2[]; double СинняячертаBuffer3[]; double вершина; double основание_первого_снижения; double начало; double вершина_волны_3; extern int T=4,K=200; int timeframe, start ; int бар_вершина ; int бар_основание_первого_снижения; int бар_начало; int pereklutsatel; double naklon,linija2; int P;extern int RO=49; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int limit=Bars-counted_bars-1; for (int i=limit;i>=0;i--) { //---- for ( int J=0;J<=RO;J++){ //---- // for(int i=Bars; i>=0;i--) i=Bars; бар_вершина=iHighest( NULL, timeframe, MODE_HIGH, K, start ) ; вершина =High[ бар_вершина ]; бар_основание_первого_снижения=iLowest( NULL, timeframe, MODE_LOW,NormalizeDouble ( бар_вершина/2,0), start ) ; основание_первого_снижения=Low[ бар_основание_первого_снижения ]; бар_начало=iLowest( NULL, timeframe, MODE_LOW,NormalizeDouble (бар_вершина*1.5,0), бар_вершина ) ; начало=Low[ бар_начало ]; if(начало>основание_первого_снижения){naklon=(начало-основание_первого_снижения)/(бар_начало-бар_основание_первого_снижения); НижняячертаBuffer2[бар_начало]=начало;linija2=начало;for(i=бар_начало-1;i>=0;i--){linija2=linija2-naklon; НижняячертаBuffer2[i]=linija2; } НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;} for (i=0;i<100;i++){ СинняячертаBuffer3[i]= Open[i];} for (i=330;i<500;i++){ СинняячертаBuffer3[i]= Open[i];} ВерхняячертаBuffer1[бар_начало]=начало; double точка4; int бар_точка4; бар_точка4=iHighest( NULL, timeframe, MODE_HIGH, бар_основание_первого_снижения, 3 ) ; точка4 =High[ бар_точка4 ]; if(вершина>точка4){naklon=(начало-точка4)/(бар_начало-бар_точка4); double linija1=начало;for(i=бар_начало-1;i>=0;i--){linija1=linija1-naklon;ВерхняячертаBuffer1[i]=linija1; }} double vulf=НижняячертаBuffer2[0]; if ( vulf==Ask&&vulf==Bid)vulf=1; else{ for (vulf=vulf+Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf-Point){ if ( vulf==Ask&&vulf==Bid){vulf=1;}} for (vulf=vulf-Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf+Point){ if ( vulf==Ask&&vulf==Bid)vulf=1;} } if (vulf==1){Comment (" Есть вульв!!! " , " timeframe " , timeframe);return(0); } if (vulf!=1&&pereklutsatel==1) { if(delimiter<3){delimiter++;Comment(delimiter);return(0);} delimiter=0; fChangePeriod();P++; } } } //---- return(0); } //+------------------------------------------------------------------+ void fChangePeriod(){int ii,hwd = WindowHandle(Symbol(),Period()); switch(Period()){ case PERIOD_W1 : ii = 33134; break; //PERIOD_D1; case PERIOD_D1 : ii = 33136; break; //PERIOD_H4; case PERIOD_H4 : ii = 33135; break; //PERIOD_H1; case PERIOD_H1 : ii = 33140; break; //PERIOD_M30; case PERIOD_M30 : ii = 33139; break; //PERIOD_M15; case PERIOD_M15 : ii = 33138; break; //PERIOD_M5; case PERIOD_M5 : ii = 33137; break; //PERIOD_M1; case PERIOD_M1 : ii = 33141; break; //PERIOD_W1; } PostMessageA(hwd, WM_COMMAND, ii, 0); return; } Dimka-novitsek 2012.07.17 14:49 #2570 skyjet: ありがとうございました。ティックで取引するEAですが、インターバル(ローソク足)で取引するように変更することは可能ですか?私はそれで完全に混乱しています。 なかなか言いにくいのですが、私はそのようにしたことがありません。なんとなくバーやローソク足を覚えておいて、次が出たら...何かが起きている、というのが必要かもしれませんね。start関数の中に書かれたコードがtickごとに 実行され、そこにすでに書かれているのがプログラマーの書いたものです。 1...250251252253254255256257258259260261262263264...631 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ユーリ、先ほどの私の質問について、何か提案はないのか?
スクリプトを確認する
結果
2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 1 TimeOpen: 00:00 Bar: 1057
2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 5 TimeOpen: 00:00 Bar: 212
2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 15 TimeOpen: 00:00 Bar: 70
2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 30 TimeOpen: 00:00 Bar: 35
2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 60 TimeOpen: 00:00 Bar: 17
2012.07.17 20:42:45 VinI_CheckTime EURUSD,Daily: TimeFrame: 240 TimeOpen: 00:00 Bar: 4
ひとことお願いします。
トレンドが変わると色が変わるマルチタイムフレームのMAを作りたいのですが、どうすればいいですか?他のタイムフレームからの平均価格表示も行いましたが、色が変わってしまう問題を解決する方法がわかりません。
これではいけない。テスターでは、このフクロウで使用する最小限のTFを始値で走らせる必要があります。フクロウはオープンオン分で走らせた方が良い。そして、TFを、明示的に処方した方が良いのです!
コード全体を表示して、"SRC"ボタンで貼り付けられるとよりよいでしょう。
OK、この投稿にコードを追加してみます。
私は長い間トレードをしてきましたが、プログラミングを始めたのは、自分が何をプログラムしたいのかがはっきり分かってからです。
私の目標は、3つのスリップの上にあるすべてのバーのクローズで緑の矢印を取得し、3つのすべての下に閉じたすべての閉じたバーで、チャートにアタッチした後に閉じたバーに対してのみ赤の矢印を取得することです。今のバーには興味がない。
この矢印は、インジケータを貼り付けている間はチャートに表示され、その後取り外したい。
今はわかりやすくするためだけにスライダーを描いていますが、その後はEAから削除します。
現在、いくつかのスライダーと矢印がありますが、それらは現在表示されたり消えたりして、間違ったバーの上に表示されています。そこが理解できないのです。
106-111行目のjやj+1と、それらをどの要素に固定するかで、何か混乱があったのかもしれませんね。
ヒントを頂ければ幸いです。
なぜかSRCボタンが機能しません。 通常のmq4としてファイルを挿入してみます。
スクリプトを確認する
あなたのコードをいじって、私の目的に合うようにチェックを作ることにしました(H1で実行)。
そして、ここにあるのは
あなたのコードをいじって、私の目的に合うようにチェックを作ることにしました(H1で実行)。
そして、これが私の得たものです。
価格を開く ことでテスターにチェックインするのです。だから、ローマンはすでにその方法を書いている。
直前のバーの終値 Close[1].
このスレッドにごきげんよう!インジケータはコンパイルされるけど何も描画されないし、何が悪いのか、何をどう考えればいいのか、バグの探し方がわからない。とにかく、コードは動作し、最小限の変更で関数を追加しましたが、今は全く何もしません!!!!
グリッドから始まる宣言のどこかに問題があるのかもしれないし、私が遅すぎてぐちゃぐちゃになっているのかもしれない...。効いていたんですねー。
ありがとうございました。ティックで取引するEAですが、インターバル(ローソク足)で取引するように変更することは可能ですか?私はそれで完全に混乱しています。
なかなか言いにくいのですが、私はそのようにしたことがありません。なんとなくバーやローソク足を覚えておいて、次が出たら...何かが起きている、というのが必要かもしれませんね。start関数の中に書かれたコードがtickごとに 実行され、そこにすでに書かれているのがプログラマーの書いたものです。