커뮤니티

청산 문제

프로필 이미지
황룡
2017-02-28 12:49:40
117
글번호 107330
답변완료
수고 하십니다. 9개봉 동안의 최고점, 최저점의 평균을 돌파하면 매수진입하고 전봉의 9개봉 동안의 최고점에 현재가 도달하면 익절 하고싶습니다. 그런데 익절하는부분에서 익절조건에 도달한 다음봉에 청산되는 문제가 있습니다. 도움 바랍니다. ============================================================================= Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0), 이전최고점(0), 이전최저점(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); } 이전최고점 = Highest(High[1], StdLen); # if (marketposition() == 1) and (High >= 이전최고점) Then if (marketposition() == 1) Then { ExitLong("Tr-1",AtLimit,이전최고점,"매수1",1,1); } 이전최저점 = Lowest(Low[1], StdLen); # if (marketposition() == -1) and (Low <= 이전최저점) Then if (marketposition() == -1) Then { ExitShort("Tr+1",AtLimit,이전최저점,"매도1"); }
시스템
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2017-02-28 14:45:50

안녕하세요 예스스탁입니다. atstop,atlimit은 현재봉완성시 값셋팅하고 다음봉의 현재가와 해당 값을 비교하므로 아래와 같이 청산식 작성하시면 됩니다. Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); } #매수후 봉완성시 고점값을 셋팅하고 다음봉에서 해당 고점값 이상의 시세가 발생하면 청산 if marketposition() == 1 Then ExitLong("Tr-1",AtLimit,고점,"매수1",1,1); #매도후 봉완성시 저점값을 셋팅하고 다음봉에서 해당 저점값 이하의 시세가 발생하면 청산 if marketposition() == -1 Then ExitShort("Tr+1",AtLimit,저점,"매도1"); 즐거운 하루되세요 > 황룡 님이 쓴 글입니다. > 제목 : 청산 문제 > 수고 하십니다. 9개봉 동안의 최고점, 최저점의 평균을 돌파하면 매수진입하고 전봉의 9개봉 동안의 최고점에 현재가 도달하면 익절 하고싶습니다. 그런데 익절하는부분에서 익절조건에 도달한 다음봉에 청산되는 문제가 있습니다. 도움 바랍니다. ============================================================================= Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0), 이전최고점(0), 이전최저점(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); } 이전최고점 = Highest(High[1], StdLen); # if (marketposition() == 1) and (High >= 이전최고점) Then if (marketposition() == 1) Then { ExitLong("Tr-1",AtLimit,이전최고점,"매수1",1,1); } 이전최저점 = Lowest(Low[1], StdLen); # if (marketposition() == -1) and (Low <= 이전최저점) Then if (marketposition() == -1) Then { ExitShort("Tr+1",AtLimit,이전최저점,"매도1"); }
프로필 이미지

황룡

2017-02-28 17:22:24

정말 감사합니다,, 그런데 아직도 신규매수봉과 떨어진 봉의 청산은 의도대로 잘되는데, 신규매수봉 바로 다음봉은 조건에 도달해도 인식하지못하고 매수봉 다다음봉에서 청산 조건 확인후 청산됩니다. 한번만 더 수고좀 해주세요....감사합니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 청산 문제 > 안녕하세요 예스스탁입니다. atstop,atlimit은 현재봉완성시 값셋팅하고 다음봉의 현재가와 해당 값을 비교하므로 아래와 같이 청산식 작성하시면 됩니다. Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); } #매수후 봉완성시 고점값을 셋팅하고 다음봉에서 해당 고점값 이상의 시세가 발생하면 청산 if marketposition() == 1 Then ExitLong("Tr-1",AtLimit,고점,"매수1",1,1); #매도후 봉완성시 저점값을 셋팅하고 다음봉에서 해당 저점값 이하의 시세가 발생하면 청산 if marketposition() == -1 Then ExitShort("Tr+1",AtLimit,저점,"매도1"); 즐거운 하루되세요 > 황룡 님이 쓴 글입니다. > 제목 : 청산 문제 > 수고 하십니다. 9개봉 동안의 최고점, 최저점의 평균을 돌파하면 매수진입하고 전봉의 9개봉 동안의 최고점에 현재가 도달하면 익절 하고싶습니다. 그런데 익절하는부분에서 익절조건에 도달한 다음봉에 청산되는 문제가 있습니다. 도움 바랍니다. ============================================================================= Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0), 이전최고점(0), 이전최저점(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); } 이전최고점 = Highest(High[1], StdLen); # if (marketposition() == 1) and (High >= 이전최고점) Then if (marketposition() == 1) Then { ExitLong("Tr-1",AtLimit,이전최고점,"매수1",1,1); } 이전최저점 = Lowest(Low[1], StdLen); # if (marketposition() == -1) and (Low <= 이전최저점) Then if (marketposition() == -1) Then { ExitShort("Tr+1",AtLimit,이전최저점,"매도1"); }
프로필 이미지

예스스탁 예스스탁 답변

2017-03-02 10:27:42

안녕하세요 예스스탁입니다. 진입이 onclose타입입니다. 봉완성시(다음봉시가수신) 조건만족하면 완성봉 종가에 신호를 표시해 주는데 marketposition은 다음봉이 완성되어야 1이나 -1로 인식됩니다,. 아래와 같이 진입봉에서 동시에 셋팅되는 청산을 추가하시면 됩니다. Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); if MarketPosition <= 0 Then ExitLong("btr",AtLimit,고점,"매수1",1,1); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); if MarketPosition >= 0 Then ExitShort("sTr",AtLimit,저점,"매도1"); } #매수후 봉완성시 고점값을 셋팅하고 다음봉에서 해당 고점값 이상의 시세가 발생하면 청산 if marketposition() == 1 Then ExitLong("Tr-1",AtLimit,고점,"매수1",1,1); #매도후 봉완성시 저점값을 셋팅하고 다음봉에서 해당 저점값 이하의 시세가 발생하면 청산 if marketposition() == -1 Then ExitShort("Tr+1",AtLimit,저점,"매도1"); 즐거운 하루되세요 > 황룡 님이 쓴 글입니다. > 제목 : Re : Re : 아직 문제가.... > 정말 감사합니다,, 그런데 아직도 신규매수봉과 떨어진 봉의 청산은 의도대로 잘되는데, 신규매수봉 바로 다음봉은 조건에 도달해도 인식하지못하고 매수봉 다다음봉에서 청산 조건 확인후 청산됩니다. 한번만 더 수고좀 해주세요....감사합니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 청산 문제 > 안녕하세요 예스스탁입니다. atstop,atlimit은 현재봉완성시 값셋팅하고 다음봉의 현재가와 해당 값을 비교하므로 아래와 같이 청산식 작성하시면 됩니다. Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); } #매수후 봉완성시 고점값을 셋팅하고 다음봉에서 해당 고점값 이상의 시세가 발생하면 청산 if marketposition() == 1 Then ExitLong("Tr-1",AtLimit,고점,"매수1",1,1); #매도후 봉완성시 저점값을 셋팅하고 다음봉에서 해당 저점값 이하의 시세가 발생하면 청산 if marketposition() == -1 Then ExitShort("Tr+1",AtLimit,저점,"매도1"); 즐거운 하루되세요 > 황룡 님이 쓴 글입니다. > 제목 : 청산 문제 > 수고 하십니다. 9개봉 동안의 최고점, 최저점의 평균을 돌파하면 매수진입하고 전봉의 9개봉 동안의 최고점에 현재가 도달하면 익절 하고싶습니다. 그런데 익절하는부분에서 익절조건에 도달한 다음봉에 청산되는 문제가 있습니다. 도움 바랍니다. ============================================================================= Inputs: StdLen(9), oneTick(0.01); Variables: 고점(0), 저점(0), 평균(0), 이전최고점(0), 이전최저점(0); 고점 = Highest(High, StdLen); 저점 = Lowest(Low, StdLen); 평균 = (고점 + 저점)/2; # 매수/매도청산 if CrossUP(c, 평균) Then { Buy("매수1"); } # 매도/매수청산 If CrossDown(c, 평균) Then { Sell("매도1"); } 이전최고점 = Highest(High[1], StdLen); # if (marketposition() == 1) and (High >= 이전최고점) Then if (marketposition() == 1) Then { ExitLong("Tr-1",AtLimit,이전최고점,"매수1",1,1); } 이전최저점 = Lowest(Low[1], StdLen); # if (marketposition() == -1) and (Low <= 이전최저점) Then if (marketposition() == -1) Then { ExitShort("Tr+1",AtLimit,이전최저점,"매도1"); }
프로필 이미지

황룡

2017-03-02 19:01:01

감사합니다..