[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 605 1...598599600601602603604605606607608609610611612...652 新しいコメント alkador 2012.03.02 12:42 #6041 すでに問い合わせたが、まだ返事はない。どなたか、累積、つまり一方向のバーを組み合わせたRange Bar Chartのインジケータをお持ちの方はいらっしゃいませんか?こんな感じです。 Роман 2012.03.02 13:12 #6042 証券会社のサイトから端末のセットアップをダウンロードし、ストラテジーテスターでこの特定の証券会社のクォートでフクロウをテストしたいのですが、F2キーを押してクォートをダウンロードすると、テスターにこのウィンドウが表示されます...。選択した証券会社の見積書をダウンロードすることは可能ですか? Warstein 2012.03.02 13:17 #6043 EAでゼロ除算 エラーが出るのを解消してください。よろしくお願いします。 double BullSumm() { double MySummBull=0; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY) { MySummBull+=OrderOpenPrice()*OrderLots(); } } return(MySummBull); } //-------------------------------------- double SummBullLots() { double MySummBullLots=0; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY) { MySummBullLots+=OrderLots(); } } return(MySummBullLots); } //--------------------------------------- .............. .............. double BullAveragePrice = NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits); ............... ............... Юсуфходжа 2012.03.02 13:26 #6044 charter: ちょうど、今は閉鎖されている端末にアップロードしていたんですね。 そして、当時のストーリーのダウンロード方法は覚えていませんので、ご容赦ください。 Vadim Zhunko 2012.03.02 13:45 #6045 rustein:EAでゼロ除算 エラーが出るのを解消してください。よろしくお願いします。 このコードの特殊なケースは、買い注文の 欠如です。だから、ゼロで割るのです。 Warstein 2012.03.02 13:55 #6046 Zhunko: このコードの特殊なケースは、買い注文がないことです。だからゼロで割るんです。 ありがとうございます、条件付きで試してみました。 int TotalBullOrders() { int TotalBullOrders = 0; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==Magic && OrderType()==OP_BUY) { TotalBullOrders++; } } return(TotalBullOrders); } if(TotalBullOrders()>0){double BullAveragePrice = NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits);} と表示され、やはりエラーとなります。 Vadim Zhunko 2012.03.02 14:26 #6047 rustein: ありがとうございます!条件付きで試してみました。 それでもエラーになる。 どんな違いがあるのでしょうか?条件の中に入らなければ、0を出力する。それで割ったものです。 Warstein 2012.03.02 14:32 #6048 Zhunko: どんな違いがあるのでしょうか?条件の中に入らなければ、出力ではゼロです。それで割ったものです。 はい、わかりました、ありがとうございます。そう言ってしまえば、他に方法がないのですが......(笑)。 //-------------------------------------- double SummBullLots() { double MySummBullLots=0.000000000000000000000000000000001; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY) { MySummBullLots+=OrderLots(); } } return(MySummBullLots); } //--------------------------------------- .............. .............. double BullAveragePrice = NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits); ............... ............... Сергей 2012.03.02 14:49 #6049 こんにちは!今回のストキャスティックのバージョンでは、フラットライン(チャート上)を追加することにしました。買われすぎ/売られすぎのゾーンで。履歴から「古い」行を削除することに問題がありました。 何が問題で、何に気をつければいいのか? //+------------------------------------------------------------------+ //| Stochastic_flat | //| Copyright © 2012 Fox.RM | //| fox.rm@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012 Fox.RM" #property link "fox.rm@mail.ru" //---- #property indicator_separate_window #property indicator_buffers 4 //---- fan style #property indicator_color1 Red #property indicator_color2 Black #property indicator_color3 Blue #property indicator_color4 DarkGray #property indicator_style1 0 #property indicator_style2 0 #property indicator_style3 0 #property indicator_style4 0 #property indicator_width4 2 #property indicator_level1 88.2 #property indicator_level2 11.8 #property indicator_levelcolor DarkGray #property indicator_levelstyle 0 //---- basic fan indicator parameters extern bool Show_STOCH_1=true; extern int K_period1=13; extern int S_period1=1; extern bool Show_STOCH_2=true; extern int K_period2=34; extern int S_period2=1; extern bool Show_STOCH_3=true; extern int K_period3=89; extern int S_period3=1; extern bool Show_STOCH_4=true; extern int K_period4=233; extern int S_period4=1; extern int delete=2; //---- indicator buffers double MainBuffer1[]; double MainBuffer2[]; double MainBuffer3[]; double MainBuffer4[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- stochastic line 1 (fast) if(Show_STOCH_1 ==true){Show_STOCH_1=DRAW_LINE; } else {Show_STOCH_1=DRAW_NONE; } SetIndexBuffer(0,MainBuffer1); SetIndexStyle(0,Show_STOCH_1,0); SetIndexLabel(0,"fast WPR ( "+K_period1+" )"); //---- stochastic line 2 (basic) if(Show_STOCH_2 ==true){Show_STOCH_2=DRAW_LINE; } else {Show_STOCH_2=DRAW_NONE; } SetIndexBuffer(1,MainBuffer2); SetIndexStyle(1,Show_STOCH_2); SetIndexLabel(1,"basic WPR ( "+K_period2+" )"); //---- stochastic line 3 (flat) if(Show_STOCH_3 ==true){Show_STOCH_3=DRAW_LINE; } else {Show_STOCH_3=DRAW_NONE; } SetIndexBuffer(2,MainBuffer3); SetIndexStyle(2,Show_STOCH_3,0); SetIndexLabel(2,"slow WPR ( "+K_period3+" )"); //---- stochastic line 4 (control) if(Show_STOCH_4 ==true){Show_STOCH_4=DRAW_LINE; } else {Show_STOCH_4=DRAW_NONE; } SetIndexBuffer(3,MainBuffer4); SetIndexStyle(3,Show_STOCH_4,0,2); SetIndexLabel(3,"control WPR ( "+K_period4+" )"); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Stochastic_flat"); } //---- return(0); //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectsDeleteAll(); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic_fan | //+------------------------------------------------------------------+ int start() { int i,shift,limit,y=0,counted_bars=IndicatorCounted(); double x1,x2; datetime y1,y11,y2,y22; //---- Plot defined timeframe on to current timeframe limit=Bars-counted_bars; //---stroim stohastik for(i=0,y=0;i<limit;i++,y++) { MainBuffer1[i]=iStochastic(NULL,0,K_period1,1,S_period1,0,0,MODE_MAIN,y); MainBuffer2[i]=iStochastic(NULL,0,K_period2,1,S_period2,0,0,MODE_MAIN,y); MainBuffer3[i]=iStochastic(NULL,0,K_period3,1,S_period3,0,0,MODE_MAIN,y); MainBuffer4[i]=iStochastic(NULL,0,K_period4,1,S_period4,0,0,MODE_MAIN,y); //---flat zona if (MainBuffer1[i] < 11.8) //---pervoe uslovie { x1=Low[i]; y1=Time[i]; //--- opredelyaem koordinaty dlya x1,y1 } if (MainBuffer1[i] > 88.2) //---vtoroe uslovie { x2=High[i]; y2=Time[i]; //--- opredelyaem koordinaty dlya x2,y2 } } for(i=Bars; i>0; i--) { //--- opredelyaem koordinaty dlya x11,y11 if (Low[i]<x1) { y11=Time[i]; } //--- opredelyaem koordinaty dlya x22,y22 if (High[i]>x2) { y22=Time[i]; } } string up_line = "upline"; string down_line = "downline"; flatlineup(up_line+TimeToStr(Time[i]), y2,x2,y22,x2,Red,1); flatlinedown(down_line+TimeToStr(Time[i]), y1,x1,y11,x1,Blue,1); dellline(up_line,i); //---- return(0); } //+------------------------------------------------------------------+ void flatlineup(string labebe,datetime time1,double price1,datetime time2,double price2,color colir, int W) { ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2); ObjectSet(labebe, OBJPROP_COLOR, colir); ObjectSet(labebe, OBJPROP_STYLE,0); ObjectSet(labebe, OBJPROP_RAY,0); ObjectSet(labebe, OBJPROP_WIDTH,W); ObjectSet(labebe, OBJPROP_BACK, true); } void flatlinedown(string labebe1,datetime time1,double price1,datetime time2,double price2,color colir, int W) { ObjectCreate(labebe1, OBJ_TREND, 0,time1,price1,time2,price2); ObjectSet(labebe1, OBJPROP_COLOR, colir); ObjectSet(labebe1, OBJPROP_STYLE,0); ObjectSet(labebe1, OBJPROP_RAY,0); ObjectSet(labebe1, OBJPROP_WIDTH,W); ObjectSet(labebe1, OBJPROP_BACK, true); } void dellline(string name_line, int i) //--- первый вариант с удалением линий { string name = ObjectName(i); if (StringFind(name,name_line)!=-1)ObjectDelete(name); // if (StringFind(name,name_line)!=-1)del1++; // if (del1>2)ObjectDelete(name); } void dellline(string name_line) //--- второй вариант с удалением линий { string name, dellname; bool del = false; for(int i=ObjectsTotal(); i>=0;i--) { if (del == false){ //---при этом условии должна происходить идентификация первой линии name = ObjectName(i); //--выполняется при первом обращении к функции dellname=name; del = true;} if (del == true){ if (StringFind(dellname,name_line)!=-1)ObjectDelete(dellname); dellname=name;} } } //---Были и промежуточные варианты, которые также не дали желаемого результата. 下のバージョンでは、うまくいきました。でも、そうでもないんです。 上の行は新しい行が現れると削除され、下の行はすぐに削除されます。なぜ? //------ функция удаляющая ненужные линии void dellline(string name_line_up, string name_line_down) { string name_l; int obj=ObjectsTotal(OBJ_TREND); // --- в этой версии интуитивно добавил свойство OBJ_TREND for (int i=obj; i>=0; i--) { name_l=ObjectName(i); if(StringFind(name_l,name_line_up)!=-1)ObjectDelete(name_l); if(StringFind(name_l,name_line_down)!=-1)ObjectDelete(name_l); }} を追加しないと、なぜこの関数が正常に動作しなかったのか、さらなる疑問が あります。 OBJ_TRENDは、この場合、根本的な変化はなさそうだから? そこで、メインコードの行名について、いくつかの実験をしてみました。 //-------------- первый вариант (рабочий) string up_line = "upline_", down_line = "downline_"; flatlineup(up_line+TimeToStr(Time[i]), y2,x2,y22,x2,Red,1); flatlinedown(down_line+TimeToStr(Time[i]), y1,x1,y11,x1,Blue,1); dellline(up_line, down_line); //---TimeToStr(Time[i]) указывал в имени тренд лайн в теле функции //--------------- второй вариант (нерабочий) string up_line = "upline_"+TimeToStr(Time[i]); //--или пробовал StringConcatenate() string down_line = "downline_"+TimeToStr(Time[i]); //--или пробовал StringConcatenate() flatlineup(up_line, y2,x2,y22,x2,Red,1); flatlinedown(down_line, y1,x1,y11,x1,Blue,1); dellline(up_line, down_line); メインコードの変数にTimeToStr(Time[i])が指定されていた。 質問です。なぜ2番目の変形がうまく いかなかったのか(つまり、関数 に割り当てられた名前を持つ行を削除しませんでした。 をup_lineとdown_lineの変数に変換しますか? И さいごのぶたい 前の記事と重複しますが、スクリーンショットにあります。その答えが見つかるはずです はできなかった。 ありがとうございました。 ファイル: stochastic_flat.mq4 7 kb Юсуфходжа 2012.03.02 15:19 #6050 ある時刻のオープンポジションの 数を表示するインジケーターがあれば教えてください。そのうち何本がBAYで何本がSELLなのかが表示されるとなお良いですね。 1...598599600601602603604605606607608609610611612...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
証券会社のサイトから端末のセットアップをダウンロードし、ストラテジーテスターでこの特定の証券会社のクォートでフクロウをテストしたいのですが、F2キーを押してクォートをダウンロードすると、テスターにこのウィンドウが表示されます...。選択した証券会社の見積書をダウンロードすることは可能ですか?
よろしくお願いします。
ちょうど、今は閉鎖されている端末にアップロードしていたんですね。
よろしくお願いします。
このコードの特殊なケースは、買い注文がないことです。だからゼロで割るんです。
ありがとうございます、条件付きで試してみました。
と表示され、やはりエラーとなります。
ありがとうございます!条件付きで試してみました。
それでもエラーになる。
どんな違いがあるのでしょうか?条件の中に入らなければ、出力ではゼロです。それで割ったものです。
そう言ってしまえば、他に方法がないのですが......(笑)。
履歴から「古い」行を削除することに問題がありました。 何が問題で、何に気をつければいいのか?
下のバージョンでは、うまくいきました。でも、そうでもないんです。 上の行は新しい行が現れると削除され、下の行はすぐに削除されます。なぜ?
を追加しないと、なぜこの関数が正常に動作しなかったのか、さらなる疑問が あります。
OBJ_TRENDは、この場合、根本的な変化はなさそうだから?
そこで、メインコードの行名について、いくつかの実験をしてみました。
メインコードの変数にTimeToStr(Time[i])が指定されていた。
質問です。なぜ2番目の変形がうまく いかなかったのか(つまり、関数
に割り当てられた名前を持つ行を削除しませんでした。
をup_lineとdown_lineの変数に変換しますか?
И さいごのぶたい 前の記事と重複しますが、スクリーンショットにあります。その答えが見つかるはずです
はできなかった。
ありがとうございました。