커뮤니티

시스템식 질문입니다.

프로필 이미지
회원
2013-03-11 17:55:01
230
글번호 60567
답변완료
일전에 올린 질문에 대한 답변코딩을 다음과 같이 주셨습니다. input : p(20),dv(2); var1 = BollBandUp(P,dv); if stime >= 93000 and stime < 144500 Then{ if MarketPosition == 0 and crossup(c,var1) Then buy("b"); if MarketPosition == 1 Then{ value1 = H[BarsSinceEntry]-L[BarsSinceEntry]; if CurrentContracts < 5 Then buy("bb",AtStop,EntryPrice+(value1*CurrentEntries)); exitlong("xl",AtStop,EntryPrice-value1+(value1*(CurrentEntries-1))); if CrossDown(c,ma(c,10)) Then exitlong("bx"); } } SetStopEndofday(144500); 볼린저 밴드 상단 돌파시 매수하고 그때의 고가와 저가의 차이만큼 상승하면 추가매수하는 식입니다. 제가 원하는 시스템은 일단 볼린저밴드 상단 crossup하면 한계약 매수, 두번째 한계약 매수는 첫번째 매수가 일어난 시점에서 그때의 고가와 저가의 차이만큼 상승하면 두번째 매수, (여기서 질문: BarsSinceEntry 함수가 정확히 무엇인지 궁금합니다. 예를들어 Ma10과 Ma10[BarsSinceEntry]의 차이점이 무엇인지 궁금합니다.) 세번째 한계약 매수는 두번째 매수가 일어난 시점의 가격에서 그때의 고가와 저가의 차이만큼 상승하면 세번째 한계약 매수...이런 식입니다. 총계약수는 5계약으로 하고 싶습니다. 매수청산은 만약 현재 세번째 매수가 일어났다면 세번째 매수한 시점의 가격에서 그때의 고가와 저가만큼의 차이만큼 하락하면 일괄 매수청산을 하고 싶습니다. 즉, 매수와 매수청산하는 가격이 일정한 비율로 결정되지 않고 매번 바뀌게 되는 것입니다. 제가 설명이 위에 답변으로 주신 코딩과 동일한지요? 약간 다른것 같아서 질문드립니다. 답변 부탁드리며 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-03-11 20:20:18

안녕하세요 예스스탁입니다. H[BarsSinceEntry]는 첫번째 진입봉의 고가를 나타냅니다. L[BarsSinceEntry]는 첫번째 진입봉의 저가를 나타냅니다. 그러므로 Ma10[BarsSinceEntry]는 첫번째 진입봉의 ma10값입니다. 기존에 작성한 식은 모두 첫번째 진입을 기준으로 합니다. 첫번째 진입신호의 가격 기준으로 첫번째 진입봉의 고가와 저가의 차이만큼 상승할때마다 추가 진입을 합니다. 제공되는 모든 포시션함수는 모두 진입을 누적할 경우 모두 첫번째 진입을 기준으로 값이 리턴됩니다. 두번째 진입부터는 값을 따로 저장해서 사용해야 하는데 작성된 식이 두번째 진입부터는 가격만족하면 즉시 진입하게 되어 있습니다. 변수에 값을 저장해 사용하려면 봉완성시에 판단할수 있는데 미완성봉에 진입하는 가격은 그 가격을 계산할수가 없어 변수에 정확할 수가 없습니다. 추가 진입식을 모두 봉완성시로 만들어 드립니다. 종가기준으로 이전 진입봉의 종가+고가차 만큰 상승하면 추가 진입합니다. input : p(20),dv(2); var1 = BollBandUp(P,dv); if stime >= 93000 and stime < 144500 Then{ if MarketPosition == 0 and crossup(c,var1) Then{ buy("b"); value1 = H; value2 = L; value3 = c; } if MarketPosition == 1 Then{ if CurrentContracts < 5 and crossup(c,value3+(value1-value2)) Then{ buy("bb"); value1 = H; value2 = L; value3 = C; } exitlong("xl",AtStop,EntryPrice-value1+(value1*(CurrentEntries-1))); if CrossDown(c,ma(c,10)) Then exitlong("bx"); } } SetStopEndofday(144500); 즐거운 하루되세요 > HI_yjam49 님이 쓴 글입니다. > 제목 : 시스템식 질문입니다. > 일전에 올린 질문에 대한 답변코딩을 다음과 같이 주셨습니다. input : p(20),dv(2); var1 = BollBandUp(P,dv); if stime >= 93000 and stime < 144500 Then{ if MarketPosition == 0 and crossup(c,var1) Then buy("b"); if MarketPosition == 1 Then{ value1 = H[BarsSinceEntry]-L[BarsSinceEntry]; if CurrentContracts < 5 Then buy("bb",AtStop,EntryPrice+(value1*CurrentEntries)); exitlong("xl",AtStop,EntryPrice-value1+(value1*(CurrentEntries-1))); if CrossDown(c,ma(c,10)) Then exitlong("bx"); } } SetStopEndofday(144500); 볼린저 밴드 상단 돌파시 매수하고 그때의 고가와 저가의 차이만큼 상승하면 추가매수하는 식입니다. 제가 원하는 시스템은 일단 볼린저밴드 상단 crossup하면 한계약 매수, 두번째 한계약 매수는 첫번째 매수가 일어난 시점에서 그때의 고가와 저가의 차이만큼 상승하면 두번째 매수, (여기서 질문: BarsSinceEntry 함수가 정확히 무엇인지 궁금합니다. 예를들어 Ma10과 Ma10[BarsSinceEntry]의 차이점이 무엇인지 궁금합니다.) 세번째 한계약 매수는 두번째 매수가 일어난 시점의 가격에서 그때의 고가와 저가의 차이만큼 상승하면 세번째 한계약 매수...이런 식입니다. 총계약수는 5계약으로 하고 싶습니다. 매수청산은 만약 현재 세번째 매수가 일어났다면 세번째 매수한 시점의 가격에서 그때의 고가와 저가만큼의 차이만큼 하락하면 일괄 매수청산을 하고 싶습니다. 즉, 매수와 매수청산하는 가격이 일정한 비율로 결정되지 않고 매번 바뀌게 되는 것입니다. 제가 설명이 위에 답변으로 주신 코딩과 동일한지요? 약간 다른것 같아서 질문드립니다. 답변 부탁드리며 감사합니다.