[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 605 1...598599600601602603604605606607608609610611612...652 새 코멘트 alkador 2012.03.02 13:42 #6041 이미 물었지만 그들은 나에게 대답하지 않았습니다. 누적이 있는 범위 막대 차트 표시기가 있는 사람이 있습니까? 단방향 막대의 조합으로? 다음과 같이 보입니다. Роман 2012.03.02 14:12 #6042 얘들 아, 말해봐 - 나는 DC 사이트에서 터미널 설정을 다운로드했습니다. F2 키를 누를 때 테스터에서 전략 테스터의 올빼미를 정확하게 테스트하고 싶습니다. 테스터에서 - 도구 따옴표를 다운로드하면 그런 창이 나옵니다 ...선택한 DC에서 견적을 다운받을 수 있다면? Warstein 2012.03.02 14:17 #6043 Expert Advisor에서 0분할 오류를 없애도록 도와주세요. 미리 감사드립니다. 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 14:26 #6044 charter : 지금 폐쇄된 터미널에 업로드한 것처럼. 그리고 그 이야기가 어떻게 다운로드되었는지 기억나지 않습니다. 저를 용서해 주십시오. Vadim Zhunko 2012.03.02 14:45 #6045 rustein : Expert Advisor에서 0분할 오류를 없애도록 도와주세요. 미리 감사드립니다. 코드의 특별한 경우 는 구매 주문 이 없는 경우입니다. 그것은 0으로 나누는 것입니다. Warstein 2012.03.02 14:55 #6046 Zhunko : 코드의 특별한 경우는 구매 주문이 없는 경우입니다. 그것은 0으로 나누는 것입니다. 감사합니다, 나는 조건으로 시도했습니다: 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 15:26 #6047 rustein : 감사합니다, 나는 조건으로 시도했습니다: 여전히 오류가 발생합니다 무슨 상관이야? 조건이 내부를 통과하지 않으면 출력은 0입니다. 그것으로 나뉩니다. Warstein 2012.03.02 15:32 #6048 Zhunko : 무슨 상관이야? 조건이 내부를 통과하지 않으면 출력은 0입니다. 그것으로 나뉩니다. 네, 알겠습니다. 감사합니다. 이렇게 하는건데 다른건 모르겠고.......) //-------------------------------------- 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 15: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])이 지정되었습니다. 문제. 두 번째 옵션이 작동하지 않는 것으로 판명된 이유 (즉, 두 번째 변형에 적용된 dellline()은 이름이 할당된 행을 제거하지 않았습니다. 변수 up_line 및 down_line? 그리고 이전 게시물의 마지막 질문 을 복제하겠습니다. 화면에 있습니다. 그것에 대한 답을 찾으십시오 할 수 없었다. 고맙습니다! 파일: stochastic_flat.mq4 7 kb Юсуфходжа 2012.03.02 16:19 #6050 알려주십시오. 주어진 시간에 열린 위치 의 수를 표시하는 표시기가 있습니까? 그 중 몇 개가 BUY이고 몇 개인지 CELL인지 표시하면 더욱 좋습니다. 1...598599600601602603604605606607608609610611612...652 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
얘들 아, 말해봐 - 나는 DC 사이트에서 터미널 설정을 다운로드했습니다. F2 키를 누를 때 테스터에서 전략 테스터의 올빼미를 정확하게 테스트하고 싶습니다. 테스터에서 - 도구 따옴표를 다운로드하면 그런 창이 나옵니다 ...선택한 DC에서 견적을 다운받을 수 있다면?
미리 감사드립니다.
지금 폐쇄된 터미널에 업로드한 것처럼.
미리 감사드립니다.
코드의 특별한 경우는 구매 주문이 없는 경우입니다. 그것은 0으로 나누는 것입니다.
감사합니다, 나는 조건으로 시도했습니다:
여전히 오류가 발생합니다
감사합니다, 나는 조건으로 시도했습니다:
여전히 오류가 발생합니다
무슨 상관이야? 조건이 내부를 통과하지 않으면 출력은 0입니다. 그것으로 나뉩니다.
이렇게 하는건데 다른건 모르겠고.......)
기록에서 "이전" 줄을 삭제하는 데 문제가 있었습니다. 무엇이 잘못되었으며 무엇에주의를 기울여야합니까?
아래 예에서는 작동했습니다. 하지만 그렇지 않습니다. 상단 라인은 새로운 라인과 함께 제거되고 하단 라인은 즉시 제거됩니다. 무엇 때문에?
이것은 추가 질문을 제기합니다. 추가 하지 않고 기능이 작동하지 않는 이유는
OBJ_TREND , 제 생각에는 이 경우에 근본적인 변화를 가져오지 않습니까?
다음으로, 메인 코드의 라인명에 대한 몇 가지 실험이 있었습니다.
기본 코드의 변수에 TimeToStr(Time[i])이 지정되었습니다.
문제. 두 번째 옵션이 작동하지 않는 것으로 판명된 이유 (즉,
두 번째 변형에 적용된 dellline()은 이름이 할당된 행을 제거하지 않았습니다.
변수 up_line 및 down_line?
그리고 이전 게시물의 마지막 질문 을 복제하겠습니다. 화면에 있습니다. 그것에 대한 답을 찾으십시오
할 수 없었다.
고맙습니다!