커뮤니티

통화후에 다시 문의드립니다

프로필 이미지
단순점진일관
2016-05-17 15:52:39
106
글번호 98177
답변완료
수식 만들어주셔서 감사합니다!!! 47490과련해 통화를 했던 사람입니다. 적용해 보았는데 매매가 안되어서 다시 문의드립니다. 종목은 gs건설 입니다. 2016/01/08 부터 적용해서 매매가 되게 수정을 부탁드립니다. 그리고 위의 시스템식을 지표로 나태날수 있는지 궁금합니다. 지표로 현재 어떻게 설정이 되어 있는지 알아야 수정보완이 쉬울것 같습니다 아래는 답글입니다 ------------------------------------ 안녕하세요 예스스탁입니다. 아래 내용이 맞을지 모르겠습니다. 주석 참고하시기 바랍니다. input : 매수1차(10000000),매수2차(1500000),매수3차(2000000); var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0); var1 = ma(C,20); #이평 데드되었다가 골드되면 최고폭저장변수는 0으로 초기화 if crossup(C,var1) Then{ T = 1; HH = 0; } if CrossDown(C,var1) Then T = -1; #20이평 위에서만 신고가 갱신시 최대폭을 구함 if T == 1 and crossup(c,Highest(H,20)[1]) Then{ #최근 폭 diff = HH; #이평위에서 최대폭과 매수가격 if diff > HH Then{ HH = diff; Price1 = H-HH*1; Price2 = H-HH*2; Price3 = H-HH*3; } } #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and Price1 > 0 Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then buy("b2",atlimit,Price2,Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then buy("b3",atlimit,Price3,Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후로 한번도 20선 아래로 내려가지 않은경우 #진입이후 최저가에서 폭만큼 상승하면 청산 if countif(C<var1,BarsSinceEntry) == 0 Then ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+diff); #진입이후로 20선 아래로 한번이상 내려간 경우 #진입이후 최저가에서 폭의 절반만큼 상승하면 청산 if countif(C<var1,BarsSinceEntry) == 0 Then ExitLong("bx2",atlimit,lowest(L,BarsSinceEntry)+diff*0.5); #일괄매도 = 현재 20일 신고가 이후 최저가 + 최대폭(75%) ExitLong("일괄매도",atlimit,lowest(L,BarsSinceEntry)+diff*0.75); } 즐거운 하루되세요
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-05-17 18:48:16

안녕하세요 예스스탁입니다. 변수가 잘못지정된 부분이 있어 수정했습니다. 2번식으로 지표식도 같이 올려드립니다. 시스템 적용시 시스템 트레이딩 설정창의 매매탭에서 피라미딩을 다른진입신호만 허용으로 설정하고 적용하시기 바랍니다. 1. input : 시작날짜(20160108),매수1차(10000000),매수2차(1500000),매수3차(2000000); var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0); var1 = ma(C,20); if sdate >= 시작날짜 then{ #이평 데드되었다가 골드되면 최고폭저장변수는 0으로 초기화 if crossup(C,var1) Then{ T = 1; HH = 0; } if CrossDown(C,var1) Then{ T = -1; Condition1 = false; } #20이평 위에서만 신고가 갱신시 최대폭을 구함 if T == 1 and H > Highest(H,20)[1] Then{ #최근 폭 diff = HH; Condition1 = true; #이평위에서 최대폭과 매수가격 if H-L > HH Then{ HH = H-L; } Price1 = H-HH*1; Price2 = H-HH*2; Price3 = H-HH*3; } if MarketPosition == 1 Then Condition1 = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and Price1 > 0 and Condition1 == true Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then buy("b2",atlimit,Price2,Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then buy("b3",atlimit,Price3,Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후로 한번도 20선 아래로 내려가지 않은경우 #진입이후 최저가에서 폭만큼 상승하면 청산 if countif(C<var1,BarsSinceEntry) == 0 Then ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+diff); #진입이후로 20선 아래로 한번이상 내려간 경우 #진입이후 최저가에서 폭의 절반만큼 상승하면 청산 if countif(C<var1,BarsSinceEntry) == 0 Then ExitLong("bx2",atlimit,lowest(L,BarsSinceEntry)+diff*0.5); #일괄매도 = 현재 20일 신고가 이후 최저가 + 최대폭(75%) ExitLong("일괄매도",atlimit,lowest(L,BarsSinceEntry)+diff*0.75); } } 2 지표 input : 매수1차(10000000),매수2차(1500000),매수3차(2000000); var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0); var1 = ma(C,20); #이평 데드되었다가 골드되면 최고폭저장변수는 0으로 초기화 if crossup(C,var1) Then{ T = 1; HH = 0; } if CrossDown(C,var1) Then T = -1; #20이평 위에서만 신고가 갱신시 최대폭을 구함 if T == 1 and H > Highest(H,20)[1] Then{ #최근 폭 diff = HH; #이평위에서 최대폭과 매수가격 if H-L > HH Then{ HH = H-L; } Price1 = H-HH*1; Price2 = H-HH*2; Price3 = H-HH*3; } plot1(Price1); plot2(Price2); plot3(Price3); 즐거운 하루되세요 > 단순점진일관 님이 쓴 글입니다. > 제목 : 통화후에 다시 문의드립니다 > 수식 만들어주셔서 감사합니다!!! 47490과련해 통화를 했던 사람입니다. 적용해 보았는데 매매가 안되어서 다시 문의드립니다. 종목은 gs건설 입니다. 2016/01/08 부터 적용해서 매매가 되게 수정을 부탁드립니다. 그리고 위의 시스템식을 지표로 나태날수 있는지 궁금합니다. 지표로 현재 어떻게 설정이 되어 있는지 알아야 수정보완이 쉬울것 같습니다 아래는 답글입니다 ------------------------------------ 안녕하세요 예스스탁입니다. 아래 내용이 맞을지 모르겠습니다. 주석 참고하시기 바랍니다. input : 매수1차(10000000),매수2차(1500000),매수3차(2000000); var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0); var1 = ma(C,20); #이평 데드되었다가 골드되면 최고폭저장변수는 0으로 초기화 if crossup(C,var1) Then{ T = 1; HH = 0; } if CrossDown(C,var1) Then T = -1; #20이평 위에서만 신고가 갱신시 최대폭을 구함 if T == 1 and crossup(c,Highest(H,20)[1]) Then{ #최근 폭 diff = HH; #이평위에서 최대폭과 매수가격 if diff > HH Then{ HH = diff; Price1 = H-HH*1; Price2 = H-HH*2; Price3 = H-HH*3; } } #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and Price1 > 0 Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then buy("b2",atlimit,Price2,Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then buy("b3",atlimit,Price3,Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후로 한번도 20선 아래로 내려가지 않은경우 #진입이후 최저가에서 폭만큼 상승하면 청산 if countif(C<var1,BarsSinceEntry) == 0 Then ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+diff); #진입이후로 20선 아래로 한번이상 내려간 경우 #진입이후 최저가에서 폭의 절반만큼 상승하면 청산 if countif(C<var1,BarsSinceEntry) == 0 Then ExitLong("bx2",atlimit,lowest(L,BarsSinceEntry)+diff*0.5); #일괄매도 = 현재 20일 신고가 이후 최저가 + 최대폭(75%) ExitLong("일괄매도",atlimit,lowest(L,BarsSinceEntry)+diff*0.75); } 즐거운 하루되세요