커뮤니티

문의드립니다

프로필 이미지
베드로
2015-06-24 11:00:04
111
글번호 87594
답변완료
안녕하세요. 수식을 만들었는데 무엇이 잘못되서 그런지 실행이 되지않읍니다. 보시고 간단하게 줄일것은 줄이고 틀린것은 수정부탁드립니다. 감사합니다. ###################### Input : af(0.01), maxAF(0.1),shortPeriod(12), longPeriod(26),shortPeriod1(24), longPeriod1(52),shortPeriod2(20), longPeriod2(120); Var : value(0),value1(0),value2(0),value3(0),value4(0),T(0),HH(0),LL(0),ma5(0); Var : value5(0), value6(0), value7(0), 갭누적(0), 일간갭(0), GC(0),TRIXGap(0),osc(0) ; value = sar(af,maxAF); value1 = MACD(shortPeriod, longPeriod); value2 = MACD(shortPeriod1, longPeriod1); value3 = ma(c, shortPeriod2); value4 = ma(c, longPeriod2); ##PAR조건 If crossup(c, value) Then { var1 = H; var2 = L; var3 = var1[1]; var4 = var2[1]; } If CrossDown(c, value) Then { var1 = H; var2 = L; var3 = var1[1]; var4 = var2[1]; } if H > var1 Then var1 = H; if L < var2 Then var2 = L; if H > var5 Then var5 = H; if L < var6 Then var6 = L; if crossUp(C, value) then var8 = var4; if CrossDown(C, value) then var9 = var3; if crossup(ma(c,5),var9) Then var10 = var8; if crossdown(ma(c,5),var8) Then var10 = var9; if crossup(ma(c,5),var10) then var5= h; if crossdown(ma(c,5),var10) then var6= l; if crossup(ma(c,5),var10) then var7= var6; if crossdown(ma(c,5),var10) then var7= var5; var11 =var6 + (var5-var6)*0.5; If crossup(c, value) Then { var12 = H; var13 = L; } If CrossDown(c, value) Then { var14 =h; var15= l; } if var12 > var14 then var16 = var12; Else var16 = var14; if var13 < var15 then var17 = var13; Else var17 = var15; ##cut loss if ma(c,5) > var7 Then var18 = var17; Else var18 = var16; ##trix if index > 0 and date!=date[1] then { 일간갭 = Open-Close[1]; //일간갭 갭누적 = 갭누적+일간갭; //일간갭 누적 } GC = C - 갭누적; value5 = ema(GC, shortPeriod); value6 = ema(value5, shortPeriod); value7 = ema(value6, shortPeriod); TRIXGap = (value7-value7[1])/value7[1]*100; OSC = trixgap; ##진입식 if T <= 0 and ma5 > var7 and value1 > 0 and value2 > 0 and value3 > value4 and C > var11 and osc > osc[1] And crossup(c,value) Then{ T = 1; HH = H; } if T >= 0 and ma5 < var7 and value1 < 0 and value2 < 0 and value3 < value4 and C < var11 and osc < osc[1] And CrossDown(c,value) Then{ T = -1; LL = L; } if T == 1 and crossup(C,HH) Then buy("매수"); if MarketPosition == 1 and value1 < 0 and osc < 0 and ma5 < var18 Then ExitLong("매수청산"); if T == -1 and CrossDown(C,LL) Then sell("매도"); if MarketPosition == -1 and value1 > 0 and osc > 0 and ma5 > var18 Then ExitShort("매도청산");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-06-24 14:41:49

안녕하세요 예스스탁입니다. 조건문에 ma5가 있는데 수식에 해당 변수에 값을 저장하는 내용이 없습니다. 5이평으로 추가해 드렸습니다. Input : af(0.01), maxAF(0.1),shortPeriod(12), longPeriod(26),shortPeriod1(24), longPeriod1(52),shortPeriod2(20), longPeriod2(120); Var : value(0),value1(0),value2(0),value3(0),value4(0),T(0),HH(0),LL(0),ma5(0); Var : value5(0), value6(0), value7(0), 갭누적(0), 일간갭(0), GC(0),TRIXGap(0),osc(0) ; value = sar(af,maxAF); value1 = MACD(shortPeriod, longPeriod); value2 = MACD(shortPeriod1, longPeriod1); value3 = ma(c, shortPeriod2); value4 = ma(c, longPeriod2); ##PAR조건 If crossup(c, value) Then { var1 = H; var2 = L; var3 = var1[1]; var4 = var2[1]; } If CrossDown(c, value) Then { var1 = H; var2 = L; var3 = var1[1]; var4 = var2[1]; } if H > var1 Then var1 = H; if L < var2 Then var2 = L; if H > var5 Then var5 = H; if L < var6 Then var6 = L; if crossUp(C, value) then var8 = var4; if CrossDown(C, value) then var9 = var3; if crossup(ma(c,5),var9) Then var10 = var8; if crossdown(ma(c,5),var8) Then var10 = var9; if crossup(ma(c,5),var10) then var5= h; if crossdown(ma(c,5),var10) then var6= l; if crossup(ma(c,5),var10) then var7= var6; if crossdown(ma(c,5),var10) then var7= var5; var11 =var6 + (var5-var6)*0.5; If crossup(c, value) Then { var12 = H; var13 = L; } If CrossDown(c, value) Then { var14 =h; var15= l; } if var12 > var14 then var16 = var12; Else var16 = var14; if var13 < var15 then var17 = var13; Else var17 = var15; ##cut loss if ma(c,5) > var7 Then var18 = var17; Else var18 = var16; ##trix if index > 0 and date!=date[1] then { 일간갭 = Open-Close[1]; //일간갭 갭누적 = 갭누적+일간갭; //일간갭 누적 } GC = C - 갭누적; value5 = ema(GC, shortPeriod); value6 = ema(value5, shortPeriod); value7 = ema(value6, shortPeriod); TRIXGap = (value7-value7[1])/value7[1]*100; OSC = trixgap; ma5 = ma(c,5); ##진입식 if T <= 0 and ma5 > var7 and value1 > 0 and value2 > 0 and value3 > value4 and C > var11 and osc > osc[1] And crossup(c,value) Then{ T = 1; HH = H; } if T >= 0 and ma5 < var7 and value1 < 0 and value2 < 0 and value3 < value4 and C < var11 and osc < osc[1] And CrossDown(c,value) Then{ T = -1; LL = L; } if T == 1 and crossup(C,HH) Then buy("매수"); if MarketPosition == 1 and value1 < 0 and osc < 0 and ma5 < var18 Then ExitLong("매수청산"); if T == -1 and CrossDown(C,LL) Then sell("매도"); if MarketPosition == -1 and value1 > 0 and osc > 0 and ma5 > var18 Then ExitShort("매도청산"); 즐거운 하루되세요 > 베드로 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요. 수식을 만들었는데 무엇이 잘못되서 그런지 실행이 되지않읍니다. 보시고 간단하게 줄일것은 줄이고 틀린것은 수정부탁드립니다. 감사합니다. ###################### Input : af(0.01), maxAF(0.1),shortPeriod(12), longPeriod(26),shortPeriod1(24), longPeriod1(52),shortPeriod2(20), longPeriod2(120); Var : value(0),value1(0),value2(0),value3(0),value4(0),T(0),HH(0),LL(0),ma5(0); Var : value5(0), value6(0), value7(0), 갭누적(0), 일간갭(0), GC(0),TRIXGap(0),osc(0) ; value = sar(af,maxAF); value1 = MACD(shortPeriod, longPeriod); value2 = MACD(shortPeriod1, longPeriod1); value3 = ma(c, shortPeriod2); value4 = ma(c, longPeriod2); ##PAR조건 If crossup(c, value) Then { var1 = H; var2 = L; var3 = var1[1]; var4 = var2[1]; } If CrossDown(c, value) Then { var1 = H; var2 = L; var3 = var1[1]; var4 = var2[1]; } if H > var1 Then var1 = H; if L < var2 Then var2 = L; if H > var5 Then var5 = H; if L < var6 Then var6 = L; if crossUp(C, value) then var8 = var4; if CrossDown(C, value) then var9 = var3; if crossup(ma(c,5),var9) Then var10 = var8; if crossdown(ma(c,5),var8) Then var10 = var9; if crossup(ma(c,5),var10) then var5= h; if crossdown(ma(c,5),var10) then var6= l; if crossup(ma(c,5),var10) then var7= var6; if crossdown(ma(c,5),var10) then var7= var5; var11 =var6 + (var5-var6)*0.5; If crossup(c, value) Then { var12 = H; var13 = L; } If CrossDown(c, value) Then { var14 =h; var15= l; } if var12 > var14 then var16 = var12; Else var16 = var14; if var13 < var15 then var17 = var13; Else var17 = var15; ##cut loss if ma(c,5) > var7 Then var18 = var17; Else var18 = var16; ##trix if index > 0 and date!=date[1] then { 일간갭 = Open-Close[1]; //일간갭 갭누적 = 갭누적+일간갭; //일간갭 누적 } GC = C - 갭누적; value5 = ema(GC, shortPeriod); value6 = ema(value5, shortPeriod); value7 = ema(value6, shortPeriod); TRIXGap = (value7-value7[1])/value7[1]*100; OSC = trixgap; ##진입식 if T <= 0 and ma5 > var7 and value1 > 0 and value2 > 0 and value3 > value4 and C > var11 and osc > osc[1] And crossup(c,value) Then{ T = 1; HH = H; } if T >= 0 and ma5 < var7 and value1 < 0 and value2 < 0 and value3 < value4 and C < var11 and osc < osc[1] And CrossDown(c,value) Then{ T = -1; LL = L; } if T == 1 and crossup(C,HH) Then buy("매수"); if MarketPosition == 1 and value1 < 0 and osc < 0 and ma5 < var18 Then ExitLong("매수청산"); if T == -1 and CrossDown(C,LL) Then sell("매도"); if MarketPosition == -1 and value1 > 0 and osc > 0 and ma5 > var18 Then ExitShort("매도청산");