커뮤니티

수식 문의 드립니다.

프로필 이미지
밝은아침
2013-08-05 17:52:02
163
글번호 66100
답변완료
항상 빠른 답변 감사드립니다. 아래 시스템 수식 문의 드립니다. Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준 value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); Osc =value1-value2; CrossUp(Osc,0)인 경우, - Osc_Max = Osc Max값 및 C_Max = Max(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장 CrossDown(Osc,0)인 경우, - Osc_Min= Osc Min값 및 C_Min = Min(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장 #매수 - 강세 다이버젼스 CrossUp(Osc,0)[2] 한뒤 CrossDown(Osc,0)[1] 했으며 CrossUp(Osc,0)[2] 하기전 Osc_Min[2]과 CrossDown(Osc,0)[1]하기전 Osc_Max[1]가 존재하며, 현재 Osc_Min > Osc_Min[2] and C_Min < C_Min[2] 이고, Osc > Osc_Min and 주봉 Osc > 주봉 Osc[1] 이면 "Buy" #매수청산 주봉 Osc < 주봉 Osc[1] and 주봉 Osc[1] > 주봉 Osc[2] 이면 "ExitLong" #매도- 약세 다이버젼스 CrossDown(Osc,0)[2] 한뒤 CrossUp(Osc,0)[1] 했으며 CrossDown(Osc,0)[2] 하기전 Osc_Max[2]과 CrossUp(Osc,0)[1]하기전 Osc_Min[1]가 존재하며, 현재 Osc_Max < Osc_Max[2] and C_Max > C_Max[2] 이고, Osc < Osc_Max and 주봉 Osc < 주봉 Osc[1] 이면 "Sell" #매도청산 주봉 Osc > 주봉 Osc[1] and 주봉 Osc[1] < 주봉 Osc[2] 이면 "ExitShort" 감사 드립니다.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2013-08-06 10:21:05

안녕하세요 예스스탁입니다. Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준 var : osc(0); var : Osc_Max(0),C_Max(0),Osc_Max1(0),C_Max1(0),Osc_Max2(0),C_Max2(0),maxidx(0); var : Osc_Min(0),C_Min(0),Osc_Min1(0),C_Min1(0),Osc_min2(0),C_min2(0),minidx(0); Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0); Var : macdVal(0), PreMacdSig(0), macdSig(0),macdOsc(0),PreMacdOsc1(0),PreMacdOsc2(0); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); Osc = value1-value2; if dayofweek(date) < DayOfWeek(date[1]) then { PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMacdSig = macdSig[1]; PreMacdOsc1 = macdOsc[1]; PreMacdOsc2 = PreMacdOsc1[1]; } Ep1 = 2/(shortPeriod+1); EP2 = 2/(longPeriod+1); EP3 = 2/(Period+1); JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균 JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균 macdVal = JISU1 - JISU2; //macd macdSig = macdVal * Ep3 + PreMacdSig * (1-Ep3); //macd signal macdOsc = macdval-macdsig; if crossup(Osc,0) Then{ Osc_Max = Osc; maxidx = 0; Osc_Max1 = Osc_Max[1]; Osc_Max2 = Osc_Max1[1]; C_Max1 = C_Max[1]; C_Max2 = C_Max1[1]; } if Osc > 0 and Osc > Osc_Max Then{ Osc_Max = Osc; maxidx = 0; } maxidx = maxidx+1; if maxidx == 1 Then C_Max = max(c,c[1],c[2]); if CrossDown(Osc,0) Then{ Osc_Min = Osc; minidx = 0; Osc_min1 = Osc_min[1]; Osc_min2 = Osc_min1[1]; C_min1 = C_min[1]; C_min2 = C_min1[1]; } if Osc < 0 and Osc < Osc_Min Then{ Osc_min = Osc; minidx = 0; } minidx = minidx+1; if minidx == 1 Then C_min = min(c,c[1],c[2]); if C_min2 > 0 and C_max2 > 0 and Osc_min > Osc_min2 and C_min < C_Min2 and Osc > Osc_min and macdOsc > premacdOsc1 Then buy(); if MarketPosition == 1 and macdOsc < premacdOsc1 and premacdOsc1 > premacdOsc2 Then ExitLong(); if C_min2 > 0 and C_max2 > 0 and Osc_max < Osc_max2 and C_max > C_Max2 and Osc < Osc_max and macdOsc < premacdOsc1 Then Sell(); if MarketPosition == -1 and macdOsc > premacdOsc1 and premacdOsc1 < premacdOsc2 Then ExitShort(); 즐거운 하루되세요 > 밝은아침 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다. > 항상 빠른 답변 감사드립니다. 아래 시스템 수식 문의 드립니다. Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준 value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); Osc =value1-value2; CrossUp(Osc,0)인 경우, - Osc_Max = Osc Max값 및 C_Max = Max(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장 CrossDown(Osc,0)인 경우, - Osc_Min= Osc Min값 및 C_Min = Min(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장 #매수 - 강세 다이버젼스 CrossUp(Osc,0)[2] 한뒤 CrossDown(Osc,0)[1] 했으며 CrossUp(Osc,0)[2] 하기전 Osc_Min[2]과 CrossDown(Osc,0)[1]하기전 Osc_Max[1]가 존재하며, 현재 Osc_Min > Osc_Min[2] and C_Min < C_Min[2] 이고, Osc > Osc_Min and 주봉 Osc > 주봉 Osc[1] 이면 "Buy" #매수청산 주봉 Osc < 주봉 Osc[1] and 주봉 Osc[1] > 주봉 Osc[2] 이면 "ExitLong" #매도- 약세 다이버젼스 CrossDown(Osc,0)[2] 한뒤 CrossUp(Osc,0)[1] 했으며 CrossDown(Osc,0)[2] 하기전 Osc_Max[2]과 CrossUp(Osc,0)[1]하기전 Osc_Min[1]가 존재하며, 현재 Osc_Max < Osc_Max[2] and C_Max > C_Max[2] 이고, Osc < Osc_Max and 주봉 Osc < 주봉 Osc[1] 이면 "Sell" #매도청산 주봉 Osc > 주봉 Osc[1] and 주봉 Osc[1] < 주봉 Osc[2] 이면 "ExitShort" 감사 드립니다.
프로필 이미지

밝은아침

2013-08-06 16:05:53

답변 정말 감사드립니다. 아래 식 관련, 일봉 차트에서 주봉의 MACD 오실레이터 지표를 나타내는 수식도 문의 드립니다. 수고하십시오. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 문의 드립니다. > 안녕하세요 예스스탁입니다. Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준 var : osc(0); var : Osc_Max(0),C_Max(0),Osc_Max1(0),C_Max1(0),Osc_Max2(0),C_Max2(0),maxidx(0); var : Osc_Min(0),C_Min(0),Osc_Min1(0),C_Min1(0),Osc_min2(0),C_min2(0),minidx(0); Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0); Var : macdVal(0), PreMacdSig(0), macdSig(0),macdOsc(0),PreMacdOsc1(0),PreMacdOsc2(0); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); Osc = value1-value2; if dayofweek(date) < DayOfWeek(date[1]) then { PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreMacdSig = macdSig[1]; PreMacdOsc1 = macdOsc[1]; PreMacdOsc2 = PreMacdOsc1[1]; } Ep1 = 2/(shortPeriod+1); EP2 = 2/(longPeriod+1); EP3 = 2/(Period+1); JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균 JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균 macdVal = JISU1 - JISU2; //macd macdSig = macdVal * Ep3 + PreMacdSig * (1-Ep3); //macd signal macdOsc = macdval-macdsig; if crossup(Osc,0) Then{ Osc_Max = Osc; maxidx = 0; Osc_Max1 = Osc_Max[1]; Osc_Max2 = Osc_Max1[1]; C_Max1 = C_Max[1]; C_Max2 = C_Max1[1]; } if Osc > 0 and Osc > Osc_Max Then{ Osc_Max = Osc; maxidx = 0; } maxidx = maxidx+1; if maxidx == 1 Then C_Max = max(c,c[1],c[2]); if CrossDown(Osc,0) Then{ Osc_Min = Osc; minidx = 0; Osc_min1 = Osc_min[1]; Osc_min2 = Osc_min1[1]; C_min1 = C_min[1]; C_min2 = C_min1[1]; } if Osc < 0 and Osc < Osc_Min Then{ Osc_min = Osc; minidx = 0; } minidx = minidx+1; if minidx == 1 Then C_min = min(c,c[1],c[2]); if C_min2 > 0 and C_max2 > 0 and Osc_min > Osc_min2 and C_min < C_Min2 and Osc > Osc_min and macdOsc > premacdOsc1 Then buy(); if MarketPosition == 1 and macdOsc < premacdOsc1 and premacdOsc1 > premacdOsc2 Then ExitLong(); if C_min2 > 0 and C_max2 > 0 and Osc_max < Osc_max2 and C_max > C_Max2 and Osc < Osc_max and macdOsc < premacdOsc1 Then Sell(); if MarketPosition == -1 and macdOsc > premacdOsc1 and premacdOsc1 < premacdOsc2 Then ExitShort(); 즐거운 하루되세요 > 밝은아침 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다. > 항상 빠른 답변 감사드립니다. 아래 시스템 수식 문의 드립니다. Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준 value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); Osc =value1-value2; CrossUp(Osc,0)인 경우, - Osc_Max = Osc Max값 및 C_Max = Max(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장 CrossDown(Osc,0)인 경우, - Osc_Min= Osc Min값 및 C_Min = Min(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장 #매수 - 강세 다이버젼스 CrossUp(Osc,0)[2] 한뒤 CrossDown(Osc,0)[1] 했으며 CrossUp(Osc,0)[2] 하기전 Osc_Min[2]과 CrossDown(Osc,0)[1]하기전 Osc_Max[1]가 존재하며, 현재 Osc_Min > Osc_Min[2] and C_Min < C_Min[2] 이고, Osc > Osc_Min and 주봉 Osc > 주봉 Osc[1] 이면 "Buy" #매수청산 주봉 Osc < 주봉 Osc[1] and 주봉 Osc[1] > 주봉 Osc[2] 이면 "ExitLong" #매도- 약세 다이버젼스 CrossDown(Osc,0)[2] 한뒤 CrossUp(Osc,0)[1] 했으며 CrossDown(Osc,0)[2] 하기전 Osc_Max[2]과 CrossUp(Osc,0)[1]하기전 Osc_Min[1]가 존재하며, 현재 Osc_Max < Osc_Max[2] and C_Max > C_Max[2] 이고, Osc < Osc_Max and 주봉 Osc < 주봉 Osc[1] 이면 "Sell" #매도청산 주봉 Osc > 주봉 Osc[1] and 주봉 Osc[1] < 주봉 Osc[2] 이면 "ExitShort" 감사 드립니다.