[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 528 1...521522523524525526527528529530531532533534535...537 새 코멘트 alex 2011.07.19 15:32 #5271 tol64 : 전역 변수의 초기 보증금 값을 기억하십시오. 정의한 값(첫 번째 사각형)을 사용하여 델타와 같을 다른 전역 변수를 만듭니다. 그리고 공식. 주식 == 초기 예금 + delta 인 경우 특정 조치. 에퀴티 == 초기 보증금 + delta*2 (두 번째 직사각형)이면 특정 조치. 고맙습니다. Anatoli Kazharski 2011.07.19 15:36 #5272 artmedia70 : 네. 정류장이 없는 것 같죠? 카미카제형 어드바이저입니다. 진정한 도박꾼을 위해.))) 팬 또는 프로판.))) Artyom Trishkin 2011.07.19 15:53 #5273 tol64 : 카미카제형 어드바이저입니다. 진정한 도박꾼을 위해.))) 팬 또는 프로판.))) 90%의 감소는 확실히 임차인이 아닙니다... Михаил 2011.07.19 16:51 #5274 일반적으로 초보자가 아닌 것 같습니다. 나는 몇 년 동안 프로그래밍을 하고 다른 언어에서 표시기를 다시 작성하고 다시 그리기를 보았습니다. 수정하고 오류가 어디에 있는지 보여주세요??? 다음은 표시기 코드입니다. #property copyright "Copyright © 2011, Michael Dm Corp." #property link "mhs_86@mail.ru" #property indicator_separate_window #property indicator_buffers 8 #property indicator_color1 Green #property indicator_color2 Green #property indicator_color3 Green #property indicator_color4 Green #property indicator_color5 Red #property indicator_color6 Red #property indicator_color7 Red #property indicator_color8 Red //--- input parameters extern int z1= 180 ; extern int z2= 360 ; extern int z3= 720 ; extern int n1= 180 ; extern int n2= 360 ; extern int n3= 8 ; extern int n4= 2 ; extern int a11= 20 ; extern int a2= 10 ; extern int a3= 3 ; extern int pm= 720 ; extern int t= 2 ; //--- buffers double up1[]; double up2[]; double up3[]; double up4[]; double down1[]; double down2[]; double down3[]; double down4[]; //ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВ double NMACD[]; double x[],xx[],xind1[],q1[],q2[],RAZ[],y[],z[],yy[],yy1[]; double yrefa[],yrefa1[],az[],az1[]; double xh[],xl[],tsh[],tsl[]; double a[],b[],h2[],a1[],b1[],l2[],o2[],c2[]; double EMA1[], EMA2[], EMA3[], SMA1[]; double procK[], procD[]; int Reg_Buy[],Reg_Sell[]; int br[],sr[],br2[],sr2[]; int zzz[],rr[],rr1[]; int ai[], a_[], b_[]; int sign[], sign1[]; extern int maxBars= 5000 ; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle ( 0 , DRAW_HISTOGRAM ); SetIndexBuffer ( 0 ,up1); SetIndexLabel ( 0 , "up1" ); SetIndexStyle ( 1 , DRAW_HISTOGRAM ,EMPTY, 2 ); SetIndexBuffer ( 1 ,up2); SetIndexLabel ( 1 , "up2" ); SetIndexStyle ( 2 , DRAW_HISTOGRAM ,EMPTY, 4 ); SetIndexBuffer ( 2 ,up3); SetIndexLabel ( 2 , "up3" ); SetIndexStyle ( 3 , DRAW_HISTOGRAM ,EMPTY, 5 ); SetIndexBuffer ( 3 ,up4); SetIndexLabel ( 3 , "up4" ); SetIndexStyle ( 4 , DRAW_HISTOGRAM ); SetIndexBuffer ( 4 ,down1); SetIndexLabel ( 4 , "down1" ); SetIndexStyle ( 5 , DRAW_HISTOGRAM ,EMPTY, 2 ); SetIndexBuffer ( 5 ,down2); SetIndexLabel ( 5 , "down2" ); SetIndexStyle ( 6 , DRAW_HISTOGRAM ,EMPTY, 4 ); SetIndexBuffer ( 6 ,down3); SetIndexLabel ( 6 , "down3" ); SetIndexStyle ( 7 , DRAW_HISTOGRAM ,EMPTY, 5 ); SetIndexBuffer ( 7 ,down4); SetIndexLabel ( 7 , "down4" ); //---- return ( 0 ); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return ( 0 ); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- int i; if (n4> 2 || n4< 1 ) { Alert ( "n4 может быть равным 1 или 2\nтип средней (1-s/2-e)" ); return ( 0 ); } if (t> 2 || t< 1 ) { Alert ( "t может быть равным 1 или 2\n(1-s/2-e)" ); return ( 0 ); } //---- ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВ int NewSize = iBars ( Symbol (), 0 ); //---- Проверка на смену нулевого бара if ( ArraySize (EMA1) < NewSize) { //---- Установить прямое направление индексирования в массиве ArraySetAsSeries (EMA1, false); ArraySetAsSeries (EMA2, false); ArraySetAsSeries (EMA3, false); ArraySetAsSeries (SMA1, false); ArraySetAsSeries (NMACD, false); ArraySetAsSeries (procK, false); ArraySetAsSeries (procD, false); ArraySetAsSeries (Reg_Buy, false); ArraySetAsSeries (Reg_Sell, false); ArraySetAsSeries (x, false); ArraySetAsSeries (xx, false); ArraySetAsSeries (xind1, false); ArraySetAsSeries (q1, false); ArraySetAsSeries (q2, false); ArraySetAsSeries (RAZ, false); ArraySetAsSeries (y, false); ArraySetAsSeries (z, false); ArraySetAsSeries (yy, false); ArraySetAsSeries (yy1, false); ArraySetAsSeries (yrefa, false); ArraySetAsSeries (yrefa1, false); ArraySetAsSeries (az, false); ArraySetAsSeries (az1, false); ArraySetAsSeries (xh, false); ArraySetAsSeries (xl, false); ArraySetAsSeries (tsh, false); ArraySetAsSeries (tsl, false); ArraySetAsSeries (br, false); ArraySetAsSeries (sr, false); ArraySetAsSeries (br2, false); ArraySetAsSeries (sr2, false); ArraySetAsSeries (a, false); ArraySetAsSeries (b, false); ArraySetAsSeries (a_, false); ArraySetAsSeries (b_, false); ArraySetAsSeries (a1, false); ArraySetAsSeries (b1, false); ArraySetAsSeries (h2, false); ArraySetAsSeries (l2, false); ArraySetAsSeries (o2, false); ArraySetAsSeries (c2, false); ArraySetAsSeries (zzz, false); ArraySetAsSeries (rr, false); ArraySetAsSeries (rr1, false); ArraySetAsSeries (ai, false); ArraySetAsSeries (sign, false); ArraySetAsSeries (sign1, false); //---- Изменить размер эмулируемых индикаторных буферов ArrayResize (EMA1, NewSize); ArrayResize (EMA2, NewSize); ArrayResize (EMA3, NewSize); ArrayResize (SMA1, NewSize); ArrayResize (NMACD, NewSize); ArrayResize (procK, NewSize); ArrayResize (procD, NewSize); ArrayResize (Reg_Buy, NewSize); ArrayResize (Reg_Sell, NewSize); ArrayResize (x, NewSize); ArrayResize (xx, NewSize); ArrayResize (xind1, NewSize); ArrayResize (q1, NewSize); ArrayResize (q2, NewSize); ArrayResize (RAZ, NewSize); ArrayResize (y, NewSize); ArrayResize (z, NewSize); ArrayResize (yy, NewSize); ArrayResize (yy1, NewSize); ArrayResize (yrefa, NewSize); ArrayResize (yrefa1, NewSize); ArrayResize (az, NewSize); ArrayResize (az1, NewSize); ArrayResize (xh, NewSize); ArrayResize (xl, NewSize); ArrayResize (tsh, NewSize); ArrayResize (tsl, NewSize); ArrayResize (br, NewSize); ArrayResize (sr, NewSize); ArrayResize (br2, NewSize); ArrayResize (sr2, NewSize); ArrayResize (a, NewSize); ArrayResize (b, NewSize); ArrayResize (a_, NewSize); ArrayResize (b_, NewSize); ArrayResize (a1, NewSize); ArrayResize (b1, NewSize); ArrayResize (h2, NewSize); ArrayResize (l2, NewSize); ArrayResize (o2, NewSize); ArrayResize (c2, NewSize); ArrayResize (zzz, NewSize); ArrayResize (rr, NewSize); ArrayResize (rr1, NewSize); ArrayResize (ai, NewSize); ArrayResize (sign, NewSize); ArrayResize (sign1, NewSize); //---- Установить обратное направление индексирования в массиве ArraySetAsSeries (EMA1, true); ArraySetAsSeries (EMA2, true); ArraySetAsSeries (EMA3, true); ArraySetAsSeries (SMA1, true); ArraySetAsSeries (NMACD, true); ArraySetAsSeries (procK, true); ArraySetAsSeries (procD, true); ArraySetAsSeries (Reg_Buy, true); ArraySetAsSeries (Reg_Sell, true); ArraySetAsSeries (x, true); ArraySetAsSeries (xx, true); ArraySetAsSeries (xind1, true); ArraySetAsSeries (q1, true); ArraySetAsSeries (q2, true); ArraySetAsSeries (RAZ, true); ArraySetAsSeries (y, true); ArraySetAsSeries (z, true); ArraySetAsSeries (yy, true); ArraySetAsSeries (yy1, true); ArraySetAsSeries (yrefa, true); ArraySetAsSeries (yrefa1, true); ArraySetAsSeries (az, true); ArraySetAsSeries (az1, true); ArraySetAsSeries (xh, true); ArraySetAsSeries (xl, true); ArraySetAsSeries (tsh, true); ArraySetAsSeries (tsl, true); ArraySetAsSeries (br, true); ArraySetAsSeries (sr, true); ArraySetAsSeries (br2, true); ArraySetAsSeries (sr2, true); ArraySetAsSeries (a, true); ArraySetAsSeries (b, true); ArraySetAsSeries (a_, true); ArraySetAsSeries (b_, true); ArraySetAsSeries (a1, true); ArraySetAsSeries (b1, true); ArraySetAsSeries (h2, true); ArraySetAsSeries (l2, true); ArraySetAsSeries (o2, true); ArraySetAsSeries (c2, true); ArraySetAsSeries (zzz, true); ArraySetAsSeries (rr, true); ArraySetAsSeries (rr1, true); ArraySetAsSeries (ai, true); ArraySetAsSeries (sign, true); ArraySetAsSeries (sign1, true); } Михаил 2011.07.19 16:51 #5275 코드 연속: int limit; int counted_bars = IndicatorCounted (); //---- последний посчитанный бар будет пересчитан if (counted_bars > 0 ) counted_bars--; limit = Bars - counted_bars - 1 ; if (limit > maxBars) limit=maxBars; //---- основной цикл for ( i = limit; i >= 0 ; i--) { //TREND_ASI //------------------- EMA1[i]= iMA ( Symbol (), 0 ,z1, 0 , 1 , 0 ,i); EMA2[i]= iMA ( Symbol (), 0 ,z2, 0 , 1 , 0 ,i); EMA3[i]= iMA ( Symbol (), 0 ,z3, 0 , 1 , 0 ,i); SMA1[i]= iMA ( Symbol (), 0 , 1 , 0 , 0 , 0 ,i); //------------------- //MACDSCALP_ASI //------------------- if (n4== 1 ) { NMACD[i]= iMA ( Symbol (), 0 ,n1, 0 , 0 , 4 ,i)- iMA ( Symbol (), 0 ,n2, 0 , 0 , 4 ,i); } if (n4== 2 ) { NMACD[i]= iMACD ( Symbol (), 0 ,n1,n2,n3, 4 , 0 ,i); } //------------------- //STOCH_ASI //------------------- procK[i]= iStochastic ( Symbol (), 0 ,a11,a3,a2, 1 , 0 , 0 ,i); procD[i]= iStochastic ( Symbol (), 0 ,a11,a3,a2, 1 , 0 , 1 ,i); //------------------- if (SMA1[i]>EMA1[i] && EMA3[i]<EMA2[i] && EMA2[i]<EMA1[i] && NMACD[i]> 0 && procK[i]< 49 ) {Reg_Buy[i] = 1 ;} if (SMA1[i]<EMA1[i] && EMA1[i]<EMA2[i] && EMA2[i]<EMA3[i] && NMACD[i]< 0 && procK[i]> 51 ) {Reg_Sell[i] = - 1 ;} //------------------- //SETUP_ASI //------------------- xx[i]=Close[i]; if (t== 1 ) { x[i]= iMA ( Symbol (), 0 ,pm, 0 , 0 , 0 ,i); } else { x[i]= iMA ( Symbol (), 0 ,pm, 0 , 1 , 0 ,i); } xind1[i]=(xx[i]-x[i])/xx[i]* 100 ; q1[i]=xind1[i+ 1 ]; q2[i]=(xind1[i]+q1[i])/ 2 ; RAZ[i]=q2[i]; y[i]=RAZ[i+ 1 ]; z[i]=RAZ[i]; if (RAZ[i]>y[i]) { yy[i]= 1 ; } if (RAZ[i]<y[i]) { yy1[i]=- 1 ; } yrefa[i]=yy[i+ 1 ]; yrefa1[i]=yy1[i+ 1 ]; if (yrefa1[i]< 0 && yy[i]> 0 ) { az[i]=yy[i]; } if (yrefa[i]> 0 && yy1[i]< 0 ) { az1[i]=yy1[i]; } if (Close[i]>Open[i]) { xh[i]=High[i]-Close[i]; } else { xh[i]=High[i]-Open[i]; } if (Close[i]>Open[i]) { xl[i]=Open[i]-Low[i]; } else { xl[i]=Close[i]-Low[i]; } } for ( i = limit; i >= 0 ; i--) { tsh[i]= iMAOnArray (xh, 0 , 6 , 0 , 0 ,i); tsl[i]= iMAOnArray (xl, 0 , 6 , 0 , 0 ,i); } Михаил 2011.07.19 16:52 #5276 코드의 마지막 부분: for ( i = limit; i >= 0 ; i--) { if ((xl[i]> 2 *tsl[i] && xh[i]< 1.5 *tsh[i]) || (Close[i]-Open[i])> 2 *tsh[i] || (xl[i]> 2 *xh[i] && xl[i]>tsl[i])) { br[i]= 3 ; } else { br[i]= 0 ; } if ((Open[i]-Close[i])> 2 *tsl[i]) { br[i]= 0 ; } if ((xh[i]> 2 *tsh[i] && xl[i]< 1.5 *tsl[i]) || (Open[i]-Close[i])> 2 *tsl[i] || (xh[i]> 2 *xl[i] && xh[i]>tsh[i])) { sr[i]=- 3 ; } else { sr[i]= 0 ; } if ( MathAbs (xh[i]-xl[i])<((tsh[i]+tsl[i])/ 2 ) && MathAbs (Open[i]-Close[i])<((tsh[i]+tsl[i])/ 2 )) { br[i]= 0 ; sr[i]= 0 ; } if ((Close[i]-Open[i])> 2 *tsh[i]) { sr[i]= 0 ; } a[i]=High[i]; b[i]=High[i+ 1 ]; if (a[i]>b[i]) { h2[i]=a[i]; } else { h2[i]=b[i]; } a1[i]=Low[i]; b1[i]=Low[i+ 1 ]; if (a1[i]<b1[i]) { l2[i]=a1[i]; } else { l2[i]=b1[i]; } o2[i]=Open[i+ 1 ]; c2[i]=Close[i]; if (c2[i]>h2[i]-(h2[i]-l2[i])/ 3 ) { br2[i]= 1 ; } else { br2[i]= 0 ; } if (c2[i]<l2[i]+(h2[i]-l2[i])/ 3 ) { sr2[i]=- 1 ; } else { sr[i]= 0 ; } zzz[i]=sr2[i]+br2[i]+br[i]+sr[i]; if (zzz[i]> 0 ) { rr[i]=zzz[i]; } else { rr[i]= 0 ; } if (zzz[i]< 0 ) { rr1[i]=zzz[i]; } else { rr1[i]= 0 ; } if (rr[i]> 0 ) { a_[i]= 1 ; } else { a_[i]= 0 ; } if (rr1[i]< 0 ) { b_[i]=- 1 ; } else { b_[i]= 0 ; } if (rr[i]== 0 && rr1[i]== 0 ) { ai[i]= 1 ; } else { ai[i]= 0 ; } if (az[i]== 1 && a_[i]== 1 && Reg_Buy[i]== 1 ) { sign[i]= 1 ; } if (az1[i]==- 1 && b_[i]==- 1 && Reg_Sell[i]==- 1 ) { sign1[i]=- 1 ; } if (az1[i]==- 1 && ai[i]== 1 && Reg_Sell[i]==- 1 ) { sign1[i]=- 1 ; } if (az[i]== 1 && ai[i]== 1 && Reg_Buy[i]== 1 ) { sign[i]= 1 ; } // анализ положения Stochastic для up if (sign[i]== 1 && procK[i]< 50 && procK[i]>= 35 ) { up1[i]= 0 ; } if (sign[i]== 1 && procK[i]< 35 && procK[i]>= 20 ) { up2[i]= 1 ; } if (sign[i]== 1 && procK[i]< 20 && procK[i]>= 10 ) { up3[i]= 1 ; } if (sign[i]== 1 && procK[i]< 10 && procK[i]>= 0 ) { up4[i]= 1 ; } // анализ положения Stochastic для down if (sign1[i]==- 1 && procK[i]> 50 && procK[i]<= 65 ) { down1[i]= 0 ; } if (sign1[i]==- 1 && procK[i]> 65 && procK[i]<= 80 ) { down2[i]=- 1 ; } if (sign1[i]==- 1 && procK[i]> 80 && procK[i]<= 90 ) { down3[i]=- 1 ; } if (sign1[i]==- 1 && procK[i]> 90 && procK[i]<= 100 ) { down4[i]=- 1 ; } //---- } return ( 0 ); } //+------------------------------------------------------------------+ Anton80 2011.07.19 17:05 #5277 Expert Advisor에서 23:00에 보류 중인 주문 에서 자동 삭제를 올바르게 지정하는 방법을 알려주시겠습니까? Anton80 2011.07.19 17:08 #5278 이 옵션은 다음과 같은 오류를 제공합니다. datetime Tim= D'23:00' ; int Cur_Hour= Hour (); // Серверное время в часах double Cur_Min = Minute (); // Серверное время в минутах double Cur_time= Cur_Hour + Cur_Min/ 100 ; // Текущее время if (Cur_time>= 20.00 &&Cur_time<= 20.00 &&order==false) { ticket= OrderSend ( Symbol (),OP_BUYLIMIT, 0.1 ,Bid-Spread, 2 ,Bid-Spread-SL,Bid, Tim); Victor Nikolaev 2011.07.19 17:09 #5279 dmmikl86 : 코드의 마지막 부분: 왜 이렇게 많은 어레이가 있습니까? Александр 2011.07.19 17:21 #5280 테스트 중에 매개변수를 최적화하는 "자연"에 자동 최적화 도구가 있습니까? 아이디어를 테스트해야 합니다. 1...521522523524525526527528529530531532533534535...537 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
전역 변수의 초기 보증금 값을 기억하십시오. 정의한 값(첫 번째 사각형)을 사용하여 델타와 같을 다른 전역 변수를 만듭니다. 그리고 공식.
주식 == 초기 예금 + delta 인 경우 특정 조치.
에퀴티 == 초기 보증금 + delta*2 (두 번째 직사각형)이면 특정 조치.
네. 정류장이 없는 것 같죠?
카미카제형 어드바이저입니다. 진정한 도박꾼을 위해.))) 팬 또는 프로판.)))
카미카제형 어드바이저입니다. 진정한 도박꾼을 위해.))) 팬 또는 프로판.)))
일반적으로 초보자가 아닌 것 같습니다. 나는 몇 년 동안 프로그래밍을 하고 다른 언어에서 표시기를 다시 작성하고 다시 그리기를 보았습니다. 수정하고 오류가 어디에 있는지 보여주세요???
다음은 표시기 코드입니다.
코드 연속:
코드의 마지막 부분:
이 옵션은 다음과 같은 오류를 제공합니다.
코드의 마지막 부분:
왜 이렇게 많은 어레이가 있습니까?