커뮤니티

시스템식 부탁드립니다.

프로필 이미지
양치기
2023-03-29 18:15:11
1154
글번호 167677
답변완료
항상 도움 주셔서 감사합니다. 종목 : 해외선물 차트 : 5분봉 최초 매수, 매도 진입이후 10틱 간격으로 불타기나 물타기 할경우 실제 진입한 가격을 보면 같은 가격에 진입되는 경우가 많은것 같습니다. 요청사항1 : 저는 일정한 간격으로 불타기나 물타기를 하고 싶습니다. 최대한 정확한 진입가격을 위한 방법이 무엇인지 도움 부탁드립니다. [일정한 간격으로 진입] 요청사항2 : 청산할때 일정계약수 이하에서는 개별청산, 일정계약수 이상에서는 평균진입가보다 10틱이상일 경우 일괄청산 하고 싶습니다. [개별청산은 진입건보다 10틱이상 수익시 청산 [일괄청산은 남아있는 계약의 평균가격 대비 10틱 이상 수익이면 일괄청산] # 매수의 경우 var : 이평(0) ; 이평 = ma(C,20) ; if marketposition == 0 and C > 이평 then buy("b",atlimit,C,1) ; 매수가격 = entryprice ; # 불타기 # 방법1 if marketposition == 1 then { buy("b2",atlimit,매수가격+10*pricescale*2,1) ; buy("b3",atlimit,매수가격+10*pricescale*3,1) ; buy("b4",atlimit,매수가격+10*pricescale*4,1) ; buy("b5",atlimit,매수가격+10*pricescale*5,1) ; buy("b6",atlimit,매수가격+10*pricescale*6,1) ; # 방법2 if marketposition == 1 then { if MaxEntries == 1 Then buy("b2",atlimit,매수가격+10*pricescale*2,1) ; if MaxEntries == 2 Then buy("b3",atlimit,매수가격+10*pricescale*3,1) ; if MaxEntries == 3 Then buy("b4",atlimit,매수가격+10*pricescale*4,1) ; if MaxEntries == 4 Then buy("b5",atlimit,매수가격+10*pricescale*5,1) ; if MaxEntries == 5 Then buy("b6",atlimit,매수가격+10*pricescale*6,1) ; } #방법3 if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*2 Then Buy("b2",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*3 Then Buy("b3",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*4 Then Buy("b4",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*5 Then Buy("b5",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*6 Then Buy("b6",AtLimit,매수가격+10*pricescale*MaxEntries,amt); } # 위 셋중 어느방법이 더 정확하게 진입이 되나요? # 위 방법외에 더 정확한 진입을 위한 수식이 있으면 수정 부탁드립니다. # 물타기 # 방법1 if marketposition == 1 then buy("bb2",atlimit,매수가격-10*pricescale*2,1) ; buy("bb3",atlimit,매수가격-10*pricescale*3,1) ; buy("bb4",atlimit,매수가격-10*pricescale*4,1) ; buy("bb5",atlimit,매수가격-10*pricescale*5,1) ; buy("bb6",atlimit,매수가격-10*pricescale*6,1) ; # 방법2 if marketposition == 1 then { if MaxEntries == 1 Then buy("b2",atlimit,매수가격-10*pricescale*2,1) ; if MaxEntries == 2 Then buy("b3",atlimit,매수가격-10*pricescale*3,1) ; if MaxEntries == 3 Then buy("b4",atlimit,매수가격-10*pricescale*4,1) ; if MaxEntries == 4 Then buy("b5",atlimit,매수가격-10*pricescale*5,1) ; if MaxEntries == 5 Then buy("b6",atlimit,매수가격-10*pricescale*6,1) ; } #방법3 if MarketPosition == 1 Then { if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*2 Then Buy("b2",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*3 Then Buy("b3",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*4 Then Buy("b4",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*5 Then Buy("b5",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*6 Then Buy("b6",AtLimit,매수가격-10*pricescale*MaxEntries,amt); } # 개별청산 if MarketPosition == 1 and CurrentContracts < 3 Then { SetStopProfittarget(PriceScale*10,PointStop); } Else SetStopProfittarget(0); # 일괄청산 #방법1: if MarketPosition == 1 and CurrentContracts >= 3 Then { exitlong("bx",atlimit,avgentryprice-PriceScale*10,PointStop); } #방법2: if MarketPosition == 1 and CurrentContracts >= 3 Then { if openpositionprofit/0.025[틱사이즈] < 10*pricescap then exitlong("bx",atlimit,c,PointStop); } # 둘중 어느것이 더 정확한 코딩인가요? # 위 방법외에 더 정확한 청산을 위한 방법이 있으면 수정 부탁드립니다. 도움 부탁드립니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-30 09:51:07

안녕하세요 예스스탁입니다. 1 atlimit이나 atstop이 봉완성시 셋팅이되어서 다음봉에서 현재가와 비교해 진입이 발생합니다. 첫진입후 한봉이 완성되어야 하므로 첫진입과 같이 셋팅이 되서 다음봉을 감시하는 내용과 이후 감시하는 내용을 지정하셔야 합니다. 2 각 추가진입은 진입이후 최저가를 기준으로 최저가가 해당가격 이하로 내려가지 않은 상태에서 첫도달시만 진입하게 하시면 됩니다. 3 var : 이평(0),간격(0),매수가격(0); 이평 = ma(C,20) ; 간격 = PriceScale*10; if marketposition == 0 and C > 이평 then { buy("b1",OnClose,Def,1) ; 매수가격 = C; buy("b2.",atlimit,매수가격+간격*1,1) ; buy("b3.",atlimit,매수가격+간격*2,1) ; buy("b4.",atlimit,매수가격+간격*3,1) ; buy("b5.",atlimit,매수가격+간격*4,1) ; buy("b6.",atlimit,매수가격+간격*5,1) ; } if marketposition == 1 then { if lowest(L,BarsSinceEntry) > 매수가격+간격*1 Then buy("b2",atlimit,매수가격+간격*1,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*2 Then buy("b3",atlimit,매수가격+간격*2,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*3 Then buy("b4",atlimit,매수가격+간격*3,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*4 Then buy("b5",atlimit,매수가격+간격*4,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*5 Then buy("b6",atlimit,매수가격+간격*5,1) ; if CurrentContracts < 3 Then SetStopProfittarget(PriceScale*10,PointStop); Else { SetStopProfittarget(0); ExitLong("bx",AtLimit,EntryPrice+PriceScale*10); } } Else SetStopProfittarget(0); 즐거운 하루되세요 > 양치기 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 항상 도움 주셔서 감사합니다. 종목 : 해외선물 차트 : 5분봉 최초 매수, 매도 진입이후 10틱 간격으로 불타기나 물타기 할경우 실제 진입한 가격을 보면 같은 가격에 진입되는 경우가 많은것 같습니다. 요청사항1 : 저는 일정한 간격으로 불타기나 물타기를 하고 싶습니다. 최대한 정확한 진입가격을 위한 방법이 무엇인지 도움 부탁드립니다. [일정한 간격으로 진입] 요청사항2 : 청산할때 일정계약수 이하에서는 개별청산, 일정계약수 이상에서는 평균진입가보다 10틱이상일 경우 일괄청산 하고 싶습니다. [개별청산은 진입건보다 10틱이상 수익시 청산 [일괄청산은 남아있는 계약의 평균가격 대비 10틱 이상 수익이면 일괄청산] # 매수의 경우 var : 이평(0) ; 이평 = ma(C,20) ; if marketposition == 0 and C > 이평 then buy("b",atlimit,C,1) ; 매수가격 = entryprice ; # 불타기 # 방법1 if marketposition == 1 then { buy("b2",atlimit,매수가격+10*pricescale*2,1) ; buy("b3",atlimit,매수가격+10*pricescale*3,1) ; buy("b4",atlimit,매수가격+10*pricescale*4,1) ; buy("b5",atlimit,매수가격+10*pricescale*5,1) ; buy("b6",atlimit,매수가격+10*pricescale*6,1) ; # 방법2 if marketposition == 1 then { if MaxEntries == 1 Then buy("b2",atlimit,매수가격+10*pricescale*2,1) ; if MaxEntries == 2 Then buy("b3",atlimit,매수가격+10*pricescale*3,1) ; if MaxEntries == 3 Then buy("b4",atlimit,매수가격+10*pricescale*4,1) ; if MaxEntries == 4 Then buy("b5",atlimit,매수가격+10*pricescale*5,1) ; if MaxEntries == 5 Then buy("b6",atlimit,매수가격+10*pricescale*6,1) ; } #방법3 if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*2 Then Buy("b2",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*3 Then Buy("b3",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*4 Then Buy("b4",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*5 Then Buy("b5",AtLimit,매수가격+10*pricescale*MaxEntries,amt); if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*6 Then Buy("b6",AtLimit,매수가격+10*pricescale*MaxEntries,amt); } # 위 셋중 어느방법이 더 정확하게 진입이 되나요? # 위 방법외에 더 정확한 진입을 위한 수식이 있으면 수정 부탁드립니다. # 물타기 # 방법1 if marketposition == 1 then buy("bb2",atlimit,매수가격-10*pricescale*2,1) ; buy("bb3",atlimit,매수가격-10*pricescale*3,1) ; buy("bb4",atlimit,매수가격-10*pricescale*4,1) ; buy("bb5",atlimit,매수가격-10*pricescale*5,1) ; buy("bb6",atlimit,매수가격-10*pricescale*6,1) ; # 방법2 if marketposition == 1 then { if MaxEntries == 1 Then buy("b2",atlimit,매수가격-10*pricescale*2,1) ; if MaxEntries == 2 Then buy("b3",atlimit,매수가격-10*pricescale*3,1) ; if MaxEntries == 3 Then buy("b4",atlimit,매수가격-10*pricescale*4,1) ; if MaxEntries == 4 Then buy("b5",atlimit,매수가격-10*pricescale*5,1) ; if MaxEntries == 5 Then buy("b6",atlimit,매수가격-10*pricescale*6,1) ; } #방법3 if MarketPosition == 1 Then { if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*2 Then Buy("b2",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*3 Then Buy("b3",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*4 Then Buy("b4",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*5 Then Buy("b5",AtLimit,매수가격-10*pricescale*MaxEntries,amt); if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*6 Then Buy("b6",AtLimit,매수가격-10*pricescale*MaxEntries,amt); } # 개별청산 if MarketPosition == 1 and CurrentContracts < 3 Then { SetStopProfittarget(PriceScale*10,PointStop); } Else SetStopProfittarget(0); # 일괄청산 #방법1: if MarketPosition == 1 and CurrentContracts >= 3 Then { exitlong("bx",atlimit,avgentryprice-PriceScale*10,PointStop); } #방법2: if MarketPosition == 1 and CurrentContracts >= 3 Then { if openpositionprofit/0.025[틱사이즈] < 10*pricescap then exitlong("bx",atlimit,c,PointStop); } # 둘중 어느것이 더 정확한 코딩인가요? # 위 방법외에 더 정확한 청산을 위한 방법이 있으면 수정 부탁드립니다. 도움 부탁드립니다. 감사합니다.