커뮤니티

도움 주셔서 감사합니다 일봉기준 진입을 3분봉으로....

프로필 이미지
작은하늘
2013-04-23 14:48:52
192
글번호 62390
답변완료
일봉에서 5일선 돌파시 진입하는 조건으로 코딩하니 종가 진입이라 익일 시초가 형성후 매수되어 진입이 늦어지는 단점이 있네요. 그래서 신호 발생은 아래와 같이 일봉 기준으로 동일하게 하고 진입은 3분봉 기준으로 일봉의 5일선 돌파시 매수, 5일선에서 2% 하락하면 스탑로스 되도록 코딩을 수정, 보완 부탁드립니다. 물론 5일선 재돌파시는 재매수 입니다^^ 다시한번 말씀 드리지만 그외의 코딩은 변경 없습니다. 감사합니다^^ Input : k(0.15), k2(0.1); var1 = ma(c,5); var2 = ma(c,10); var3 = ma(c,20); var4 = countif(C>=C[1]*(1 + k),10); var5 = countif(H>=H[1]*(1 + k2),10); var6 = countif(L < var1,5); if var1 > var2 and var2 > var3 and (var4[1] >= 1 or var5[1] >= 1) and #var6[2] == 0 and C[1] < var1[1] and O < Var1 and crossup(c,var1) Then #V >= V[1]*2 Then buy(); if MarketPosition == 1 Then{ value1 = highest(H,BarsSinceEntry); if CurrentContracts == MaxContracts Then exitlong("bx1",atlimit,EntryPrice*1.05,"",50,1); if CurrentContracts < MaxContracts Then{ exitlong("bx2",atlimit,EntryPrice*1.08); } } SetStopTrailing(1, 5, PercentStop, 1); SetStopLoss(2,PercentStop);
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2013-04-24 10:32:06

안녕하세요 예스스탁입니다. Input : k(0.15), k2(0.1); input : P1(5),P2(10),P3(20); var : count(0),sumV1(0),sumV2(0),sumV3(0),sumV11(0),cnt(0); sumV1 = 0; sumV11 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+CloseD(count); if count < P1 Then sumV11 = sumV11+CloseD(count+1); if count < P2 Then sumV2 = sumV2+CloseD(count); if count < P3 Then sumV3 = sumV3+CloseD(count); } var1 = sumV1 / P1; var11 = sumV11 / P1; var2 = sumV2 / P2; var3 = sumV3 / P3; var4 = 0; var5 = 0; for cnt = 1 to 10{ if DayClose(cnt) > DayClose(cnt+1)*(1 + k) Then var4 = var4+1; if DayHigh(cnt) > DayHigh(cnt+1)*(1 + k2) Then var5 = var5+1; } if var1 > var2 and var2 > var3 and (var4 >= 1 or var5 >= 1) and DayClose(1) < var11 and DayOpen < Var1 and crossup(c,var1) Then buy(); if MarketPosition == 1 Then{ value1 = highest(H,BarsSinceEntry); if CurrentContracts == MaxContracts Then exitlong("bx1",atlimit,EntryPrice*1.05,"",50,1); if CurrentContracts < MaxContracts Then{ exitlong("bx2",atlimit,EntryPrice*1.08); } } SetStopTrailing(1, 5, PercentStop, 1); SetStopLoss(2,PercentStop); 즐거운 하루되세요 > 작은하늘 님이 쓴 글입니다. > 제목 : 도움 주셔서 감사합니다 일봉기준 진입을 3분봉으로.... > 일봉에서 5일선 돌파시 진입하는 조건으로 코딩하니 종가 진입이라 익일 시초가 형성후 매수되어 진입이 늦어지는 단점이 있네요. 그래서 신호 발생은 아래와 같이 일봉 기준으로 동일하게 하고 진입은 3분봉 기준으로 일봉의 5일선 돌파시 매수, 5일선에서 2% 하락하면 스탑로스 되도록 코딩을 수정, 보완 부탁드립니다. 물론 5일선 재돌파시는 재매수 입니다^^ 다시한번 말씀 드리지만 그외의 코딩은 변경 없습니다. 감사합니다^^ Input : k(0.15), k2(0.1); var1 = ma(c,5); var2 = ma(c,10); var3 = ma(c,20); var4 = countif(C>=C[1]*(1 + k),10); var5 = countif(H>=H[1]*(1 + k2),10); var6 = countif(L < var1,5); if var1 > var2 and var2 > var3 and (var4[1] >= 1 or var5[1] >= 1) and #var6[2] == 0 and C[1] < var1[1] and O < Var1 and crossup(c,var1) Then #V >= V[1]*2 Then buy(); if MarketPosition == 1 Then{ value1 = highest(H,BarsSinceEntry); if CurrentContracts == MaxContracts Then exitlong("bx1",atlimit,EntryPrice*1.05,"",50,1); if CurrentContracts < MaxContracts Then{ exitlong("bx2",atlimit,EntryPrice*1.08); } } SetStopTrailing(1, 5, PercentStop, 1); SetStopLoss(2,PercentStop);
프로필 이미지

작은하늘

2013-04-24 11:12:50

작성하여주신 아래 코딩으로 3분봉 백테스트하니 진입이 전혀 안되네요. 수식검증은 이상이 없습니다. 확인 부탁 드립니다^^ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 도움 주셔서 감사합니다 일봉기준 진입을 3분봉으로.... > 안녕하세요 예스스탁입니다. Input : k(0.15), k2(0.1); input : P1(5),P2(10),P3(20); var : count(0),sumV1(0),sumV2(0),sumV3(0),sumV11(0),cnt(0); sumV1 = 0; sumV11 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+CloseD(count); if count < P1 Then sumV11 = sumV11+CloseD(count+1); if count < P2 Then sumV2 = sumV2+CloseD(count); if count < P3 Then sumV3 = sumV3+CloseD(count); } var1 = sumV1 / P1; var11 = sumV11 / P1; var2 = sumV2 / P2; var3 = sumV3 / P3; var4 = 0; var5 = 0; for cnt = 1 to 10{ if DayClose(cnt) > DayClose(cnt+1)*(1 + k) Then var4 = var4+1; if DayHigh(cnt) > DayHigh(cnt+1)*(1 + k2) Then var5 = var5+1; } if var1 > var2 and var2 > var3 and (var4 >= 1 or var5 >= 1) and DayClose(1) < var11 and DayOpen < Var1 and crossup(c,var1) Then buy(); if MarketPosition == 1 Then{ value1 = highest(H,BarsSinceEntry); if CurrentContracts == MaxContracts Then exitlong("bx1",atlimit,EntryPrice*1.05,"",50,1); if CurrentContracts < MaxContracts Then{ exitlong("bx2",atlimit,EntryPrice*1.08); } } SetStopTrailing(1, 5, PercentStop, 1); SetStopLoss(2,PercentStop); 즐거운 하루되세요 > 작은하늘 님이 쓴 글입니다. > 제목 : 도움 주셔서 감사합니다 일봉기준 진입을 3분봉으로.... > 일봉에서 5일선 돌파시 진입하는 조건으로 코딩하니 종가 진입이라 익일 시초가 형성후 매수되어 진입이 늦어지는 단점이 있네요. 그래서 신호 발생은 아래와 같이 일봉 기준으로 동일하게 하고 진입은 3분봉 기준으로 일봉의 5일선 돌파시 매수, 5일선에서 2% 하락하면 스탑로스 되도록 코딩을 수정, 보완 부탁드립니다. 물론 5일선 재돌파시는 재매수 입니다^^ 다시한번 말씀 드리지만 그외의 코딩은 변경 없습니다. 감사합니다^^ Input : k(0.15), k2(0.1); var1 = ma(c,5); var2 = ma(c,10); var3 = ma(c,20); var4 = countif(C>=C[1]*(1 + k),10); var5 = countif(H>=H[1]*(1 + k2),10); var6 = countif(L < var1,5); if var1 > var2 and var2 > var3 and (var4[1] >= 1 or var5[1] >= 1) and #var6[2] == 0 and C[1] < var1[1] and O < Var1 and crossup(c,var1) Then #V >= V[1]*2 Then buy(); if MarketPosition == 1 Then{ value1 = highest(H,BarsSinceEntry); if CurrentContracts == MaxContracts Then exitlong("bx1",atlimit,EntryPrice*1.05,"",50,1); if CurrentContracts < MaxContracts Then{ exitlong("bx2",atlimit,EntryPrice*1.08); } } SetStopTrailing(1, 5, PercentStop, 1); SetStopLoss(2,PercentStop);