커뮤니티

감사합니다. For 구문 다시 질문 드려요.

프로필 이미지
스피리투스
2019-07-15 16:05:55
144
글번호 130342
답변완료
input : P1(5),P2(10),P3(20),P4(60),P5(120); input : BBP(20),dv(2),dv2(3); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),B(0),S(0),BX(0),SX(0); Var : BBup(0),BBdn(0),BBup2(0),BBdn2(0); mav1 = ma(C,P1); mav2 = ma(C,P2); mav3 = ma(C,P3); mav4 = ma(C,P4); mav5 = ma(C,P5); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); BBup2 = BollBandUp(BBP,dv2); BBdn2 = BollBandDown(BBP,dv2); if MarketPosition ==0 and H>=BBup and mav5<BBup then buy("b1"); 제가 짜 보고 있는 습작입니다. 내용은, bbup을 돌파했을 때, 120일선이 bbup 아래 있으면 매수한다... 이런 수식입니다. 그런데 5일선부터 5일 단위로,120일선까지 다 일일이 작성하기가 힘들어서 5,10,20,60,120.. 이렇게 5개만 할까 하다가 for 구문을 쓰면 5일 단위로 다 넣을 수 있으니 더 좋을 거 같습니다. 앞서 짜주신 수식에서 if index>=P[2] then... 이런 수식이 들어 있던데요 이 부분이 무슨 의미인지 이해가 안 되어서 좀 더 자세하게 다시 예를 들어 질문 드린 것입니다. 나중에 다른 수식을 짤 때도 이평선을 수십개 일일이 적용할 경우 만들어 주신 수식을 이용해서 응용해 볼 수 있도록 설명 좀 부탁드립니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-07-16 14:21:04

안녕하세요 예스스탁입니다. input : P1(5),P2(120); var : cnt(0),BBup(0); bbup = BollBandUp(20,2); #봉번호 120이후 부터 계산 if index >= P2 then { #초기값은 true Condition1 = true; #cnt변수에 5부터 5씩 증가하면서 120까지 값을 저장 for cnt = P1 to P2 step 5 { #cnt에 값이 저장되면 cnt로 이평을 계산해서 종가와 비교해 #중가가 cnt기간 이평보다 작은 케이스가 나오면 Condition1은 false if C < ma(C,cnt) Then Condition1 = false; } #최종 Condition1이 true일때만 매수 if MarketPosition <=0 and H>bbup and Condition1 == true Then buy("b1"); } index는 차트봉번호입니다. 이평을 P1(5)이평부터 P2(120)이평까지 사용하고 P2(120)이평을 계산하려면 최소 120개봉이 필요합니다. 차트상 120개봉이 만들어 지기 전에 해당 로직을 수행하는 것은 의미가 없으므로 12개봉 이후부터 계산하라고 조건을 지정한 것입니다. 즐거운 하루되세요 > 스피리투스 님이 쓴 글입니다. > 제목 : 감사합니다. For 구문 다시 질문 드려요. > input : P1(5),P2(10),P3(20),P4(60),P5(120); input : BBP(20),dv(2),dv2(3); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),B(0),S(0),BX(0),SX(0); Var : BBup(0),BBdn(0),BBup2(0),BBdn2(0); mav1 = ma(C,P1); mav2 = ma(C,P2); mav3 = ma(C,P3); mav4 = ma(C,P4); mav5 = ma(C,P5); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); BBup2 = BollBandUp(BBP,dv2); BBdn2 = BollBandDown(BBP,dv2); if MarketPosition ==0 and H>=BBup and mav5<BBup then buy("b1"); 제가 짜 보고 있는 습작입니다. 내용은, bbup을 돌파했을 때, 120일선이 bbup 아래 있으면 매수한다... 이런 수식입니다. 그런데 5일선부터 5일 단위로,120일선까지 다 일일이 작성하기가 힘들어서 5,10,20,60,120.. 이렇게 5개만 할까 하다가 for 구문을 쓰면 5일 단위로 다 넣을 수 있으니 더 좋을 거 같습니다. 앞서 짜주신 수식에서 if index>=P[2] then... 이런 수식이 들어 있던데요 이 부분이 무슨 의미인지 이해가 안 되어서 좀 더 자세하게 다시 예를 들어 질문 드린 것입니다. 나중에 다른 수식을 짤 때도 이평선을 수십개 일일이 적용할 경우 만들어 주신 수식을 이용해서 응용해 볼 수 있도록 설명 좀 부탁드립니다. 감사합니다.