[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 295 1...288289290291292293294295296297298299300301302...652 新しいコメント Виктор 2011.10.26 16:31 #2941 isCloseLastPosByStop - 最後のポジションをストップで決済するフラグを返 します isCloseLastPosByTake - 最後のポジションをテイクプロフィットで決済するフラグを返します。 Warstein 2011.10.26 17:51 #2942 Help fix, standard stockistik,added a alert that doesn't work correctly, can't figure out where the error is...といった具合です。 感謝 //+------------------------------------------------------------------+ //| Stochastic.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red #property indicator_width1 1 #property indicator_width2 1 #property indicator_level1 20 #property indicator_level2 50 #property indicator_level3 80 #property indicator_levelcolor DimGray //---- input parameters //+------------------------------------------------------------------+ extern bool Alerts = true; //+------------------------------------------------------------------+ extern int AlertBar = 1; //+------------------------------------------------------------------+ extern int KPeriod = 5; //+------------------------------------------------------------------+ extern int DPeriod = 2; //+------------------------------------------------------------------+ extern int Slowing = 3; //+------------------------------------------------------------------+ extern int MAMethod = 3; // 0=SMA,1=EMA,2=SSMA,3=LWMA //+------------------------------------------------------------------+ //-------------------------------------------------------------------+ //----- datetime LastAlertTime = -333; //---- Buffers double MainBuffer[]; double SignalBuffer[]; double HighesBuffer[]; double LowesBuffer[]; //---- int MAMode; string strMAType; //---- int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(4); //---- indicator lines SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); SetIndexBuffer(0,MainBuffer); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); SetIndexBuffer(1,SignalBuffer); //---- SetIndexBuffer(2,HighesBuffer); SetIndexBuffer(3,LowesBuffer); //---- switch(MAMethod) { case 1: strMAType="EMA"; MAMode=MODE_EMA; break; case 2: strMAType="SMMA"; MAMode=MODE_SMMA; break; case 3: strMAType="LWMA"; MAMode=MODE_LWMA; break; default: strMAType="SMA"; MAMode=MODE_SMA; break; } //---- name for DataWindow and indicator subwindow label short_name="Stochastic ("+KPeriod+","+DPeriod+","+Slowing+","+strMAType+")"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); SetIndexLabel(1,"Signal"); //---- draw_begin1=KPeriod+Slowing; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic oscillator | //+------------------------------------------------------------------+ int start() { int i,k; int counted_bars=IndicatorCounted(); double price; //---- if(Bars<=draw_begin2) return(0); //---- initial zero if(counted_bars<1) { for(i=1;i<=draw_begin1;i++) MainBuffer[Bars-i]=0; for(i=1;i<=draw_begin2;i++) SignalBuffer[Bars-i]=0; } //---- minimums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double min=1000000; k=i+KPeriod-1; while(k>=i) { price=Low[k]; if(min>price) min=price; k--; } LowesBuffer[i]=min; i--; } //---- maximums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double max=-1000000; k=i+KPeriod-1; while(k>=i) { price=High[k]; if(max<price) max=price; k--; } HighesBuffer[i]=max; i--; } //---- %K line i=Bars-draw_begin1; if(counted_bars>draw_begin1) i=Bars-counted_bars-1; while(i>=0) { double sumlow=0.0; double sumhigh=0.0; for(k=(i+Slowing-1);k>=i;k--) { sumlow+=Close[k]-LowesBuffer[k]; sumhigh+=HighesBuffer[k]-LowesBuffer[k]; } if(sumhigh==0.0) MainBuffer[i]=100.0; else MainBuffer[i]=sumlow/sumhigh*100; i--; } //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; //---- signal line is simple movimg average for(i=0; i<limit; i++) SignalBuffer[i]=iMAOnArray(MainBuffer,Bars,DPeriod,0,MAMethod,i); //+------------------------------------------------------------------+ if(Alerts) { if(AlertBar >= 0 && Time[0] > LastAlertTime) { if(MainBuffer[i+AlertBar] > SignalBuffer[i+AlertBar] && MainBuffer[i+AlertBar+1] <= SignalBuffer[i+AlertBar+1]) { Alert("Stochastic BULL! ",Symbol()," TF: ",Period()); } if(MainBuffer[i+AlertBar] < SignalBuffer[i+AlertBar] && MainBuffer[i+AlertBar+1] >= SignalBuffer[i+AlertBar+1]) { Alert("Stochastic BEAR! ",Symbol()," TF: ",Period()); } } LastAlertTime = Time[0]; } //---- return(0); } //+------------------------------------------------------------------+ Cmu4 2011.10.26 21:27 #2943 マルチMAを作りたいのですが。つまり、2つのMAがチャート上に表示されている必要があります - 1つは現在の商品用、もう1つは2番目の商品用です。 商品ごとにボラティリティやポイントの多寡が異なるので、それらを束ねることに疑問がある。役に立つことが思いつかない...。助けて:) Всеволод 2011.10.27 00:42 #2944 Cmu4: マルチMAを作りたいのですが。つまり、2つのMAがチャート上に表示されている必要があります - 1つは現在の商品用、もう1つは2番目の商品用です。 商品ごとにボラティリティやポイントの多寡が異なるので、それらを束ねることに疑問がある。役に立つことが思いつかない...。助けて:) サブウィンドウで、問題が起きないことを祈ります。 課題にもよりますが、両チャートで周期の大きなMAをとって、それを基準にすることもできます。 例えば、ワーキングMAの場合、周期は12です。メインのシンボルはそのまま描きます。 その他の記号については、MA12とMA60の差を求め、この差に係数をかけたものを主記号のMA60に加算する必要があります。 削除済み 2011.10.27 03:55 #2945 artmedia70:そして、明確にするために?最初のポジションは、オープン(市場)のものと、すでにクローズしているものと、どちらを選ぶべきでしょうか?最初のポジションが3年前に開設された場合はどうでしょうか。選択する必要があるのでしょ うか? そして、それは何のためなのか? 空いている ポジションの中から最初に選ぶこと。 最初のオープンポジションと 最後のオープンポジションの距離をpips単位で確認する必要があります。 ZZZEROXXX 2011.10.27 05:45 #2946 forexnew:IsConnected() を使ってみました。) - 効果なし。何かアドバイスはありますか? IsTradeAllowed()を返すものが他にあるか見てみるのもいいかもしれません。 よろしくお願いします。最後のポイントからN本先のバーに付けられた2つのポイントに従って、トレンドを作ろうとしています。すなわち、最初のポイントと2番目のポイントの時間価格と、Nは先のバーの数で 表されます(チェックボックスビーム=false)。2つ目のポイントは、現在のバー0からバー1にあり、そこから10バー先まで描画しなければならないと仮定すると、未来からバーの時間と価格をどのように計算すればよいのでしょうか。 Alexey Bondarenko 2011.10.27 05:51 #2947 よろしくお願いします。 時間High[3]を調べるにはどうしたらよいですか? PapaYozh 2011.10.27 05:52 #2948 alex11230: よろしくお願いします。 時間High[3]を調べるにはどうしたらよいですか? 時間[3]の場合 Warstein 2011.10.27 08:47 #2949 Roll: 試してみてください。 ありがとうございました :) Vitaliy Andreischev 2011.10.27 08:51 #2950 描画の仕方 / を文字列にする? 例えば、こんな感じです。 文字列path=TerminalPath()+"/logs/"+tekTime+".log"。 はエラーを出し、スラッシュ "/" を削除すると 文字列path=TerminalPath()+"logs "+tekTime+".log"; - エラーなし 1...288289290291292293294295296297298299300301302...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
isCloseLastPosByTake - 最後のポジションをテイクプロフィットで決済するフラグを返します。
Help fix, standard stockistik,added a alert that doesn't work correctly, can't figure out where the error is...といった具合です。
感謝
マルチMAを作りたいのですが。つまり、2つのMAがチャート上に表示されている必要があります - 1つは現在の商品用、もう1つは2番目の商品用です。
商品ごとにボラティリティやポイントの多寡が異なるので、それらを束ねることに疑問がある。役に立つことが思いつかない...。助けて:)
マルチMAを作りたいのですが。つまり、2つのMAがチャート上に表示されている必要があります - 1つは現在の商品用、もう1つは2番目の商品用です。
商品ごとにボラティリティやポイントの多寡が異なるので、それらを束ねることに疑問がある。役に立つことが思いつかない...。助けて:)
サブウィンドウで、問題が起きないことを祈ります。
課題にもよりますが、両チャートで周期の大きなMAをとって、それを基準にすることもできます。
例えば、ワーキングMAの場合、周期は12です。メインのシンボルはそのまま描きます。
その他の記号については、MA12とMA60の差を求め、この差に係数をかけたものを主記号のMA60に加算する必要があります。
そして、明確にするために?最初のポジションは、オープン(市場)のものと、すでにクローズしているものと、どちらを選ぶべきでしょうか?最初のポジションが3年前に開設された場合はどうでしょうか。選択する必要があるのでしょ うか?
そして、それは何のためなのか?
空いている ポジションの中から最初に選ぶこと。
最初のオープンポジションと 最後のオープンポジションの距離をpips単位で確認する必要があります。
IsTradeAllowed()を返すものが他にあるか見てみるのもいいかもしれません。
よろしくお願いします。最後のポイントからN本先のバーに付けられた2つのポイントに従って、トレンドを作ろうとしています。すなわち、最初のポイントと2番目のポイントの時間価格と、Nは先のバーの数で 表されます(チェックボックスビーム=false)。2つ目のポイントは、現在のバー0からバー1にあり、そこから10バー先まで描画しなければならないと仮定すると、未来からバーの時間と価格をどのように計算すればよいのでしょうか。
よろしくお願いします。
時間High[3]を調べるにはどうしたらよいですか?
よろしくお願いします。
時間High[3]を調べるにはどうしたらよいですか?
時間[3]の場合
試してみてください。
描画の仕方
/
を文字列にする?
例えば、こんな感じです。
文字列path=TerminalPath()+"/logs/"+tekTime+".log"。
はエラーを出し、スラッシュ "/" を削除すると
文字列path=TerminalPath()+"logs "+tekTime+".log";
- エラーなし