커뮤니티

macd 적용 시스템

프로필 이미지
조민철
2017-08-07 06:27:47
157
글번호 111832
답변완료
항상 감사드립니다 수식작성이 잘안됩니다.. 아래조건으로 수식을 만들고 있는데...어렵네요.. 1.아래의 식의 오류를 수정해 주시기 바랍니다. 신호가 정상적인 자리에 나오질 않고 있네요 2.시스템지표에서 나오는 자동추세선의 초단기,단기,중기,장기의 봉갯수를 알고싶습니다 지표식으로 이모든것들을 같은챠트에 표현할수 있는지요 /**************************************************************************/ Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(H, 9) + Lowest(L, 9)) / 2; 기준선 = (Highest(H, 26) + Lowest(L, 26)) / 2; 선행스팬1 = (전환선[25] + 기준선[25]) / 2 ; 선행스팬2 = (Highest(H, 52)[25] + Lowest(L, 52)[25]) / 2; /*********************************************************/ Input : Period1(20),Period2(10); var : CCIv(0),CCIs(0); CCIv = CCI(Period1); CCIs = ema(CCIv,Period2); /***********************************/ Input : short(12),long(26),sig(9); Var : MACDv(0),MACDS(0); MACDv = MACD(short, long); MACDs = ema(MACDv,sig); /************************************/ var: T1(0),T4(0); if crossup(macdv,macds) Then{ var13 = macdv; var12 = var13[1]; var11 = var12[1]; if var12<var13 then T1=1; } if CrossDown(macdv,macds) Then{ var23 = macdv; var22 = var23[1]; var21 = var22[1]; if var22>var23 then T1=-1; } /*************************************/ if crossup(기준선,선행스팬2) Then T4 = 1 ; if CrossDown(기준선,선행스팬2) Then T4= -1 ; /*************************************/ if (stime >= 090000 and stime < 150000) Then{ if T1==1 and macdv<0 and macdv>macds and c>선행스팬2 then buy("b1") ; if T1==1 and macdv>0 and macdv>macds and c>선행스팬2 and cciv>0 then buy("b2") ; if T4 == 1 and C > 선행스팬2 and macdv>macds and macdv<0 and cciv>0 Then buy("B4"); /*************************************************************************/ if T1==-1 and macdv>0 and macdv<macds and c<선행스팬2 then sell("s1") ; if T1==-1 and macdv<0 and macdv<macds and c<선행스팬2 and cciv<0 then sell("s2") ; if T4 == -1 and C < 선행스팬2 and macdv<macds and macdv>0 and cciv<0 Then sell("S4"); } /*************************************************************************/
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-08-07 14:50:33

안녕하세요 예스스탁입니다. 1 수식만 올리시면 어떤 오류인지 알수가 없습니다. 해당 식에 문법적인 오류는 없습니다. 진입조건상의 내용이므로 해당 부분은 사용자분이 처리하셔야 합니다. 2 기간별 비교고점점 봉갯수는 아래와 같습니다. 초단기 3개,단기 10개,중기 60개,장기 120개 아래식 비교고저저점기준 변경하셔서 여러번 적용하시면 됩니다. 차트 보조도구의 자동추세선식과 완전히 동일하게는 작성이 되지 않습니다. 아래는 최대한 비슷하게 작성한 식입니다. input : 비교고저점기준(5); var : cnt(0),BTL(0),STL(0); Array : HH[20](0),HD[20](0),HT[20](0); Array : LL[20](0),LD[20](0),LT[20](0); if SwingHigh(1,H,비교고저점기준,비교고저점기준,비교고저점기준*2+1) != -1 Then{ HH[0] = H[비교고저점기준]; HD[0] = sdate[비교고저점기준]; HT[0] = sTime[비교고저점기준]; Condition1 = false; for cnt = 1 to 19{ HH[cnt] = HH[cnt-1][1]; HD[cnt] = HD[cnt-1][1]; HT[cnt] = HT[cnt-1][1]; if Condition1 == false and HH[cnt] > HH[0] and HH[cnt] > 0 Then{ Condition1 = true; TL_Delete(BTL); BTL = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } } } if SwingLow(1,L,비교고저점기준,비교고저점기준,비교고저점기준*2+1) != -1 Then{ LL[0] = L[비교고저점기준]; LD[0] = sdate[비교고저점기준]; LT[0] = sTime[비교고저점기준]; Condition2 = false; for cnt = 1 to 19{ LL[cnt] = LL[cnt-1][1]; LD[cnt] = LD[cnt-1][1]; LT[cnt] = LT[cnt-1][1]; if Condition2 == false and LL[cnt] < LL[0] and LL[cnt] > 0 Then{ Condition2 = true; TL_Delete(STL); STL = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]); TL_SetExtRight(STL,true); TL_SetColor(STL,blue); } } } 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : macd 적용 시스템 > 항상 감사드립니다 수식작성이 잘안됩니다.. 아래조건으로 수식을 만들고 있는데...어렵네요.. 1.아래의 식의 오류를 수정해 주시기 바랍니다. 신호가 정상적인 자리에 나오질 않고 있네요 2.시스템지표에서 나오는 자동추세선의 초단기,단기,중기,장기의 봉갯수를 알고싶습니다 지표식으로 이모든것들을 같은챠트에 표현할수 있는지요 /**************************************************************************/ Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(H, 9) + Lowest(L, 9)) / 2; 기준선 = (Highest(H, 26) + Lowest(L, 26)) / 2; 선행스팬1 = (전환선[25] + 기준선[25]) / 2 ; 선행스팬2 = (Highest(H, 52)[25] + Lowest(L, 52)[25]) / 2; /*********************************************************/ Input : Period1(20),Period2(10); var : CCIv(0),CCIs(0); CCIv = CCI(Period1); CCIs = ema(CCIv,Period2); /***********************************/ Input : short(12),long(26),sig(9); Var : MACDv(0),MACDS(0); MACDv = MACD(short, long); MACDs = ema(MACDv,sig); /************************************/ var: T1(0),T4(0); if crossup(macdv,macds) Then{ var13 = macdv; var12 = var13[1]; var11 = var12[1]; if var12<var13 then T1=1; } if CrossDown(macdv,macds) Then{ var23 = macdv; var22 = var23[1]; var21 = var22[1]; if var22>var23 then T1=-1; } /*************************************/ if crossup(기준선,선행스팬2) Then T4 = 1 ; if CrossDown(기준선,선행스팬2) Then T4= -1 ; /*************************************/ if (stime >= 090000 and stime < 150000) Then{ if T1==1 and macdv<0 and macdv>macds and c>선행스팬2 then buy("b1") ; if T1==1 and macdv>0 and macdv>macds and c>선행스팬2 and cciv>0 then buy("b2") ; if T4 == 1 and C > 선행스팬2 and macdv>macds and macdv<0 and cciv>0 Then buy("B4"); /*************************************************************************/ if T1==-1 and macdv>0 and macdv<macds and c<선행스팬2 then sell("s1") ; if T1==-1 and macdv<0 and macdv<macds and c<선행스팬2 and cciv<0 then sell("s2") ; if T4 == -1 and C < 선행스팬2 and macdv<macds and macdv>0 and cciv<0 Then sell("S4"); } /*************************************************************************/