커뮤니티

실행이 안됩니다.

프로필 이미지
흑수돌
2012-07-31 20:08:10
405
글번호 53402
답변완료
설정값을 바꾸지 않고 그대로 복사해서 해 봤는데요, 안 됩니다. 차트는 data2는 연결선물 3분봉 data1는 (신호가 뜨는 분봉) 연결 1분봉. ------------------------------------------ Input: shortPeriod(13), longPeriod(26), Period(6), maPeriod(13), ROCPeriod(9), stoPeriod1(10), stoPeriod2(6), CCIPeriod(9),n(50),n1(1),n2(10); input: P1(13),P2(26),P3(6); var: value(0,data2),BW_SEVEN(0,data2); var : Va1(0,data2),va2(0,data2),va3(0,data2),D1Stok(0,data1),D1stod(0,data1); var : sumGap(0,data2), gap(0,data2), GO(0,data2), GH(0,data2), GL(0,data2), GC(0,data2); VAR : TCHAN(0,data1), BCHAN(0,data1); if data2(date!=date[1]) then { gap = data2(Open-Close[1]); sumGap = sumGap+gap; } GO = data2(O - sumGap); GH = data2(H - sumGap); GL = data2(L - sumGap); GC = data2(C - sumGap); //문장1 : MACD가 MACD 시그널선 보다 큼 if data2(ema(gC,shortPeriod)-ema(gC,longPeriod) >= ema(ema(gC,shortPeriod)-ema(gC,longPeriod),Period)) then value = 1; else value = -1; //문장2 : 종가가 이동평균선보다 큼 if data2(gC >= ma(gC, maPeriod)) then value = value + 1; else value = value - 1; //문장3 : Price ROC가 0선보다 큼 if data2((gC - gC[ROCPeriod]) / gC[ROCPeriod] * 100 >= 0) then value = value + 1; else value = value - 1; //문장4 : StochasticsK선이 50선 보다 큼 if data2(ema((gC-lowest(gL, stoPeriod1)) / (highest(gH, stoPeriod1) - lowest(gL, stoPeriod1)) * 100, stoPeriod2)>=50) then value = value + 1; else value = value - 1; Variables: Sum(0), CCIcount(0), MD(0), Avgvalue(0),CCIV(0); If CCIPeriod > 0 Then Begin Avgvalue = data2(Ma(GH + gL + GC, CCIPeriod)); MD = 0; For CCIcount = 0 To CCIPeriod - 1 Begin MD = MD + data2(Abs(GH[CCIcount] + gL[CCIcount] + GC[CCIcount] - Avgvalue)); End; MD = data2(MD / CCIPeriod); If MD == 0 Then CCIv = 0; Else CCIv = data2((GH + gL + GC - Avgvalue) / (0.015 * MD)); End Else CCIv = 0; //CCI가 0선 보다 큼 if CCIv > 0 then value = value + 1; else value = value - 1; //CO가 0선 보다 큼 if data2(ema(accum(((gC -gL)-(gH- gC))/ (gH-gL)*V), 3) - ema(accum(((gC -gL)-(gH- gC))/(gH-gL)*V), 10) >=0) then value = value + 1; else value = value - 1; input : AF(0.02),AFMAX(0.2); Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(h), LowValue(l), EP(0),Sarv(0); if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gl < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = gl; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gh > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = gh; } } Sarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } Sarv = SAR_Value; } else { if Direction == 0 then { if gc > gc[1] then Direction = 1; else if gc < gc[1] then Direction = -1; } else { if Direction == 1 then { if gc < gc[1] then { Direction = -1; SAR_Value = HighValue; Sarv = SAR_Value; } } if Direction == -1 then { if gc > gc[1] then { Direction = 1; SAR_Value = LowValue; Sarv = SAR_Value; } } } LowValue = min(gl, LowValue); HighValue = max(gh, HighValue); } } //문장7 : 종가가 파라볼릭보다 큼 if Sarv < gC then value = value + 1; else value = value - 1; BW_SEVEN = value; # 매도/매수청산 va1 = data2(ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2)); va2 = data2(ema(va1,P3)); va3 = data2(va1-va2); d1stoK = data1(StochasticsK(4,3)); d1stoD = data1(StochasticsD(4,3,3)); TCHAN = HIGHEST(HIGH, n2); BCHAN = LOWEST(LOW, n2); If CrossUp(value,1) and (crossup(D1stok,20) or (crossup(D1stok,D1Stod) and D1stok >= 20 and D1stok < N)) Then { Buy(); } If CrossDown(value,-1) or Crossdown(c,BCHAN[n1]) Then { ExitLong(); } If CrossDown(value,-1) and (CrossDown(D1stok,80) or (CrossDown(D1stok,D1Stod) and D1stok <= 80 and D1stok > N)) Then { Sell(); } If Crossup(value,1) or crossup(c,TCHAN[n1]) Then { Sell(); }
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2012-07-31 20:19:17

안녕하세요 예스스탁입니다. 안된다고 하시는 부분이 신호가 발생하지 않는다는 의미이신지 신호가 잘못 발생하고 있다고 하시는 내용인지 자세한 내용 부탁드립니다. 신호는 정상적으로 발생하고 있습니다. 즐거운 하루되세요 > 흑수돌 님이 쓴 글입니다. > 제목 : 실행이 안됩니다. > 설정값을 바꾸지 않고 그대로 복사해서 해 봤는데요, 안 됩니다. 차트는 data2는 연결선물 3분봉 data1는 (신호가 뜨는 분봉) 연결 1분봉. ------------------------------------------ Input: shortPeriod(13), longPeriod(26), Period(6), maPeriod(13), ROCPeriod(9), stoPeriod1(10), stoPeriod2(6), CCIPeriod(9),n(50),n1(1),n2(10); input: P1(13),P2(26),P3(6); var: value(0,data2),BW_SEVEN(0,data2); var : Va1(0,data2),va2(0,data2),va3(0,data2),D1Stok(0,data1),D1stod(0,data1); var : sumGap(0,data2), gap(0,data2), GO(0,data2), GH(0,data2), GL(0,data2), GC(0,data2); VAR : TCHAN(0,data1), BCHAN(0,data1); if data2(date!=date[1]) then { gap = data2(Open-Close[1]); sumGap = sumGap+gap; } GO = data2(O - sumGap); GH = data2(H - sumGap); GL = data2(L - sumGap); GC = data2(C - sumGap); //문장1 : MACD가 MACD 시그널선 보다 큼 if data2(ema(gC,shortPeriod)-ema(gC,longPeriod) >= ema(ema(gC,shortPeriod)-ema(gC,longPeriod),Period)) then value = 1; else value = -1; //문장2 : 종가가 이동평균선보다 큼 if data2(gC >= ma(gC, maPeriod)) then value = value + 1; else value = value - 1; //문장3 : Price ROC가 0선보다 큼 if data2((gC - gC[ROCPeriod]) / gC[ROCPeriod] * 100 >= 0) then value = value + 1; else value = value - 1; //문장4 : StochasticsK선이 50선 보다 큼 if data2(ema((gC-lowest(gL, stoPeriod1)) / (highest(gH, stoPeriod1) - lowest(gL, stoPeriod1)) * 100, stoPeriod2)>=50) then value = value + 1; else value = value - 1; Variables: Sum(0), CCIcount(0), MD(0), Avgvalue(0),CCIV(0); If CCIPeriod > 0 Then Begin Avgvalue = data2(Ma(GH + gL + GC, CCIPeriod)); MD = 0; For CCIcount = 0 To CCIPeriod - 1 Begin MD = MD + data2(Abs(GH[CCIcount] + gL[CCIcount] + GC[CCIcount] - Avgvalue)); End; MD = data2(MD / CCIPeriod); If MD == 0 Then CCIv = 0; Else CCIv = data2((GH + gL + GC - Avgvalue) / (0.015 * MD)); End Else CCIv = 0; //CCI가 0선 보다 큼 if CCIv > 0 then value = value + 1; else value = value - 1; //CO가 0선 보다 큼 if data2(ema(accum(((gC -gL)-(gH- gC))/ (gH-gL)*V), 3) - ema(accum(((gC -gL)-(gH- gC))/(gH-gL)*V), 10) >=0) then value = value + 1; else value = value - 1; input : AF(0.02),AFMAX(0.2); Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(h), LowValue(l), EP(0),Sarv(0); if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gl < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = gl; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gh > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = gh; } } Sarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } Sarv = SAR_Value; } else { if Direction == 0 then { if gc > gc[1] then Direction = 1; else if gc < gc[1] then Direction = -1; } else { if Direction == 1 then { if gc < gc[1] then { Direction = -1; SAR_Value = HighValue; Sarv = SAR_Value; } } if Direction == -1 then { if gc > gc[1] then { Direction = 1; SAR_Value = LowValue; Sarv = SAR_Value; } } } LowValue = min(gl, LowValue); HighValue = max(gh, HighValue); } } //문장7 : 종가가 파라볼릭보다 큼 if Sarv < gC then value = value + 1; else value = value - 1; BW_SEVEN = value; # 매도/매수청산 va1 = data2(ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2)); va2 = data2(ema(va1,P3)); va3 = data2(va1-va2); d1stoK = data1(StochasticsK(4,3)); d1stoD = data1(StochasticsD(4,3,3)); TCHAN = HIGHEST(HIGH, n2); BCHAN = LOWEST(LOW, n2); If CrossUp(value,1) and (crossup(D1stok,20) or (crossup(D1stok,D1Stod) and D1stok >= 20 and D1stok < N)) Then { Buy(); } If CrossDown(value,-1) or Crossdown(c,BCHAN[n1]) Then { ExitLong(); } If CrossDown(value,-1) and (CrossDown(D1stok,80) or (CrossDown(D1stok,D1Stod) and D1stok <= 80 and D1stok > N)) Then { Sell(); } If Crossup(value,1) or crossup(c,TCHAN[n1]) Then { Sell(); }
프로필 이미지

흑수돌

2012-07-31 22:09:27

신호의 개념은 간단합니다. data1 1분봉에서의 잦은 신호를 data2 의 신호로 필터링을 주는 것인데요, 지표를 문의 드릴때 참고로 드린 '갭보정된 세븐바이너리 신호' 만 3분봉에 돌려 보시면 알겠지만, 그 신호는 하루에도 여러번의 신호를 뿌려줍니다. 또한, 추가로 문의한 스토케스틱 신호만을 1분봉에서 돌려보시면 그 신호 또한 하루에도 여러번 신호를 주게 됩니다. 스토케스틱 4-3-3 이니 오죽하겠습니까. 그런데, 여기에 data2의 신호를 필터링 건다고 해서 하루에 한번도 신호가 안나올 수는 없는 노릇이거든요. ======25628 문의 게시글 ================ > 제목 : 수식 문의 > 아래는 기본 지표에 있는 '세븐바이너리지표'를 갭보정하여 매수,매도가 나올 수 있도록 시스템 수식으로 만든 것입니다. 아래 수식을 data2(같은 종목의 타주기)의 매수 매도 조건으로 하고 매수 :::: data1에서는 조건1 : 스토캐스틱슬로우 4-3-3이 침체권 20에서 탈출하는 순간. 또는 조건2 : 스토캐스틱슬로우 4-3-3이 %K선이 %D선을 골드 크로스 치는 순간. 조건3 : 단 침체권 안에서의 골드크로스와 기준선 n값 이상에서의 골드크로스는 인정하지 않음) 매수 하되 조건4 : data2의 신호가 매수일때에만 위의 매수신호가 유효한 것으로 처리 (조건 1,2가 발생한 이후에 조건4가 충족될 때는 신호를 발생시키지 않습니다.) 매수 청산 ::: 주가가 종가상 n봉 전의 price channel n2값 하단을 깨고 내려가면 청산. 또는 data2가 매도 조건이 뜨면 청산. 매도 :::: data1에서는 조건1 : 스토캐스틱슬로우 4-3-3이 과열권 80에서 탈출하는 순간. 또는 조건2 : 스토캐스틱슬로우 4-3-3이 %K선이 %D선을 데드 크로스 치는 순간. 조건3 : 단 과열권 안에서의 데드크로스와 기준선 n값 이하에서의 골드크로스는 인정하지 않음) 매도 하되 조건4 : data2의 신호가 매도일때에만 위의 매수신호가 유효한 것으로 처리 (조건 1,2가 발생한 이후에 조건4가 충족될 때는 신호를 발생시키지 않습니다.) 매도 청산 : 주가가 종가상 n봉 전의 price channel n2값 상단을 뚫고 올라가면 청산. 또는 data2가 매수 조건이 뜨면 청산. ================ 위의 수식의 모든 조건값을 직접 수정할 수 있도록 해주시기 바랍니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 실행이 안됩니다. > 안녕하세요 예스스탁입니다. 안된다고 하시는 부분이 신호가 발생하지 않는다는 의미이신지 신호가 잘못 발생하고 있다고 하시는 내용인지 자세한 내용 부탁드립니다. 신호는 정상적으로 발생하고 있습니다. 즐거운 하루되세요 > 흑수돌 님이 쓴 글입니다. > 제목 : 실행이 안됩니다. > 설정값을 바꾸지 않고 그대로 복사해서 해 봤는데요, 안 됩니다. 차트는 data2는 연결선물 3분봉 data1는 (신호가 뜨는 분봉) 연결 1분봉. ------------------------------------------ Input: shortPeriod(13), longPeriod(26), Period(6), maPeriod(13), ROCPeriod(9), stoPeriod1(10), stoPeriod2(6), CCIPeriod(9),n(50),n1(1),n2(10); input: P1(13),P2(26),P3(6); var: value(0,data2),BW_SEVEN(0,data2); var : Va1(0,data2),va2(0,data2),va3(0,data2),D1Stok(0,data1),D1stod(0,data1); var : sumGap(0,data2), gap(0,data2), GO(0,data2), GH(0,data2), GL(0,data2), GC(0,data2); VAR : TCHAN(0,data1), BCHAN(0,data1); if data2(date!=date[1]) then { gap = data2(Open-Close[1]); sumGap = sumGap+gap; } GO = data2(O - sumGap); GH = data2(H - sumGap); GL = data2(L - sumGap); GC = data2(C - sumGap); //문장1 : MACD가 MACD 시그널선 보다 큼 if data2(ema(gC,shortPeriod)-ema(gC,longPeriod) >= ema(ema(gC,shortPeriod)-ema(gC,longPeriod),Period)) then value = 1; else value = -1; //문장2 : 종가가 이동평균선보다 큼 if data2(gC >= ma(gC, maPeriod)) then value = value + 1; else value = value - 1; //문장3 : Price ROC가 0선보다 큼 if data2((gC - gC[ROCPeriod]) / gC[ROCPeriod] * 100 >= 0) then value = value + 1; else value = value - 1; //문장4 : StochasticsK선이 50선 보다 큼 if data2(ema((gC-lowest(gL, stoPeriod1)) / (highest(gH, stoPeriod1) - lowest(gL, stoPeriod1)) * 100, stoPeriod2)>=50) then value = value + 1; else value = value - 1; Variables: Sum(0), CCIcount(0), MD(0), Avgvalue(0),CCIV(0); If CCIPeriod > 0 Then Begin Avgvalue = data2(Ma(GH + gL + GC, CCIPeriod)); MD = 0; For CCIcount = 0 To CCIPeriod - 1 Begin MD = MD + data2(Abs(GH[CCIcount] + gL[CCIcount] + GC[CCIcount] - Avgvalue)); End; MD = data2(MD / CCIPeriod); If MD == 0 Then CCIv = 0; Else CCIv = data2((GH + gL + GC - Avgvalue) / (0.015 * MD)); End Else CCIv = 0; //CCI가 0선 보다 큼 if CCIv > 0 then value = value + 1; else value = value - 1; //CO가 0선 보다 큼 if data2(ema(accum(((gC -gL)-(gH- gC))/ (gH-gL)*V), 3) - ema(accum(((gC -gL)-(gH- gC))/(gH-gL)*V), 10) >=0) then value = value + 1; else value = value - 1; input : AF(0.02),AFMAX(0.2); Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(h), LowValue(l), EP(0),Sarv(0); if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gl < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = gl; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gh > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = gh; } } Sarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } Sarv = SAR_Value; } else { if Direction == 0 then { if gc > gc[1] then Direction = 1; else if gc < gc[1] then Direction = -1; } else { if Direction == 1 then { if gc < gc[1] then { Direction = -1; SAR_Value = HighValue; Sarv = SAR_Value; } } if Direction == -1 then { if gc > gc[1] then { Direction = 1; SAR_Value = LowValue; Sarv = SAR_Value; } } } LowValue = min(gl, LowValue); HighValue = max(gh, HighValue); } } //문장7 : 종가가 파라볼릭보다 큼 if Sarv < gC then value = value + 1; else value = value - 1; BW_SEVEN = value; # 매도/매수청산 va1 = data2(ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2)); va2 = data2(ema(va1,P3)); va3 = data2(va1-va2); d1stoK = data1(StochasticsK(4,3)); d1stoD = data1(StochasticsD(4,3,3)); TCHAN = HIGHEST(HIGH, n2); BCHAN = LOWEST(LOW, n2); If CrossUp(value,1) and (crossup(D1stok,20) or (crossup(D1stok,D1Stod) and D1stok >= 20 and D1stok < N)) Then { Buy(); } If CrossDown(value,-1) or Crossdown(c,BCHAN[n1]) Then { ExitLong(); } If CrossDown(value,-1) and (CrossDown(D1stok,80) or (CrossDown(D1stok,D1Stod) and D1stok <= 80 and D1stok > N)) Then { Sell(); } If Crossup(value,1) or crossup(c,TCHAN[n1]) Then { Sell(); }
프로필 이미지

예스스탁 예스스탁 답변

2012-08-01 13:49:32

안녕하세요 예스스탁입니다. 수정한 식입니다. Input: shortPeriod(13), longPeriod(26), Period(6), maPeriod(13), ROCPeriod(9), stoPeriod1(10), stoPeriod2(6), CCIPeriod(9),n(50),n1(1),n2(10); input: P1(13),P2(26),P3(6); var: value(0,data2),BW_SEVEN(0,data2); var : Va1(0,data2),va2(0,data2),va3(0,data2),D1Stok(0,data1),D1stod(0,data1); var : sumGap(0,data2), gap(0,data2), GO(0,data2), GH(0,data2), GL(0,data2), GC(0,data2); VAR : TCHAN(0,data1), BCHAN(0,data1); if data2(date!=date[1]) then { gap = data2(Open-Close[1]); sumGap = sumGap+gap; } GO = data2(O - sumGap); GH = data2(H - sumGap); GL = data2(L - sumGap); GC = data2(C - sumGap); //문장1 : MACD가 MACD 시그널선 보다 큼 if data2(ema(gC,shortPeriod)-ema(gC,longPeriod) >= ema(ema(gC,shortPeriod)-ema(gC,longPeriod),Period)) then value = 1; else value = -1; //문장2 : 종가가 이동평균선보다 큼 if data2(gC >= ma(gC, maPeriod)) then value = value + 1; else value = value - 1; //문장3 : Price ROC가 0선보다 큼 if data2((gC - gC[ROCPeriod]) / gC[ROCPeriod] * 100 >= 0) then value = value + 1; else value = value - 1; //문장4 : StochasticsK선이 50선 보다 큼 if data2(ema((gC-lowest(gL, stoPeriod1)) / (highest(gH, stoPeriod1) - lowest(gL, stoPeriod1)) * 100, stoPeriod2)>=50) then value = value + 1; else value = value - 1; Variables: Sum(0), CCIcount(0), MD(0), Avgvalue(0),CCIV(0); If CCIPeriod > 0 Then Begin Avgvalue = data2(Ma(GH + gL + GC, CCIPeriod)); MD = 0; For CCIcount = 0 To CCIPeriod - 1 Begin MD = MD + data2(Abs(GH[CCIcount] + gL[CCIcount] + GC[CCIcount] - Avgvalue)); End; MD = data2(MD / CCIPeriod); If MD == 0 Then CCIv = 0; Else CCIv = data2((GH + gL + GC - Avgvalue) / (0.015 * MD)); End Else CCIv = 0; //CCI가 0선 보다 큼 if CCIv > 0 then value = value + 1; else value = value - 1; //CO가 0선 보다 큼 if data2(ema(accum(((gC -gL)-(gH- gC))/ (gH-gL)*V), 3) - ema(accum(((gC -gL)-(gH- gC))/(gH-gL)*V), 10) >=0) then value = value + 1; else value = value - 1; input : AF(0.02),AFMAX(0.2); Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(h), LowValue(l), EP(0),Sarv(0); if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gl < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = gl; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gh > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = gh; } } Sarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } Sarv = SAR_Value; } else { if Direction == 0 then { if gc > gc[1] then Direction = 1; else if gc < gc[1] then Direction = -1; } else { if Direction == 1 then { if gc < gc[1] then { Direction = -1; SAR_Value = HighValue; Sarv = SAR_Value; } } if Direction == -1 then { if gc > gc[1] then { Direction = 1; SAR_Value = LowValue; Sarv = SAR_Value; } } } LowValue = min(gl, LowValue); HighValue = max(gh, HighValue); } } //문장7 : 종가가 파라볼릭보다 큼 if Sarv < gC then value = value + 1; else value = value - 1; BW_SEVEN = value; # 매도/매수청산 va1 = data2(ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2)); va2 = data2(ema(va1,P3)); va3 = data2(va1-va2); d1stoK = data1(StochasticsK(4,3)); d1stoD = data1(StochasticsD(4,3,3)); TCHAN = HIGHEST(HIGH, n2); BCHAN = LOWEST(LOW, n2); If value > 1 and (crossup(D1stok,20) or (crossup(D1stok,D1Stod) and D1stok >= 20 and D1stok < N)) Then { Buy(); } If CrossDown(value,-1) or Crossdown(c,BCHAN[n1]) Then { ExitLong(); } If value < -1 and (CrossDown(D1stok,80) or (CrossDown(D1stok,D1Stod) and D1stok <= 80 and D1stok > N)) Then { Sell(); } If Crossup(value,1) or crossup(c,TCHAN[n1]) Then { ExitShort(); } 즐거운 하루되세요