커뮤니티

안녕하세요 좀 도와주세요

프로필 이미지
버들
2017-02-02 22:16:53
117
글번호 106500
답변완료
안녕하세요 해결되지 않는 부분이 있어 도움을 요청합니다. 차트 셋팅은 종목1(Data1), 종목2(Data2), 지표로 구성되어있고, 지표는 Data1과 Data2의 데이터 값을 이용한 지표입니다. 제가 구성하고 싶은 것은.... 1. 각종목(Data1,2)의 가격과 상관없이 오로지 지표값에 따라 진입, 청산을 하고 싶습니다. (지표값이 일정해도 두종목의 가격은 서로 다르게 움직여서 진입가격을 종목의 가격으로 지정할 수 없습니다) 2. 진입후 오버가 진행되더라도 한번의 전략이 진행되는 동안에는 최초 진입당시의 지표값을 기준으로 청산과 재진입을 반복합니다 3. 당일 시초 지표값을 OpenPrice로 두고(최초 진입 기준값) 최초 진입 기준값보다 지표값이 "15" 상승하면 ---> 1차 매도진입 최초 진입 기준값보다 지표값이 "35" 상승하면 ---> 2차 매도진입 최초 진입 기준값보다 지표값이 "50" 상승하면 ---> 3차 매도진입 4. 최초진입후 지표값이 20하락하면(지표값 "-5") 청산후 매매종료 5. 최초진입후 2차진입까지 진행되면 지표값이 2차진입기준 25하락시(지표값 "10") 2차 매도분만 청산후 2차 매도진입 시점에서 재진입과 청산 반복 6. 3차진입까지 진행되면 3차진입 지표값 대비 30하락시(지표값 "20") 3차 매도분 청산후 3차 매도진입 시점에서 재진입과 청산을 반복 7. 지표값기준 총 누적손익(보유+청산)이 "70"이면 모두 청산후 매매 종료 8. 지표값기준 총 누적손실(보유+청산)이 "300"이면 모두 손절처리후 매매 종료 제가 만들어본 수식은 피라미딩을 허용하지 않으면 1차 진입과 청산은 이루어지는데... 피라미딩 적용후 2차까지의 진입시 2차 진입분은 청산이 되는데... 1차 진입분은 청산이 안되네요... 이유를 찾지 못하겠습니다. 좀 도와 주세요^^ 감사합니다 ## Xcond 조건 ## IF MarketPosition == 0 Then Xcond = False ; If TotalTrades > TotalTrades[1] Then { If (IsExitName("SX1",1) == True or IsExitName("BX1",1) == True) Then Xcond = True; Else Xcond = false; } ## 매도 조건 ## ## OpenPrice는 지표의 당일 시가값, Double은 지표값 ## If ((stime > 100000 and stime <= 240000) or (stime < 063000)) and (Xcond == false) then { If MarketPosition == 0 and CrossUp(Double, OpenPrice+진입1) then { Sell("S1", OnClose, DEF, 1) ; // 1차 진입 AA1 = Double ; // 초기 진입지표값 기억 } SellProfit1 = AA1 - Double ; If CrossUp(SellProfit1, 목표수익1) then ExitShort("SX1", OnClose, DEF, "S1", 1) ; // 1차진입분 청산 if MarketPosition == -1 and CurrentContracts == 1 and CrossDown(SellProfit1, -진입2) then { Sell("S2", OnClose, DEF, 1) ; // 1차 진입후 손실시 2차진입 } if MarketPosition == -1 and CurrentContracts == 2 and CrossDown(Double_C, AA1+진입2-목표수익2) then { ExitShort("SX2", OnClose, DEF, "S2", 1) ; // 2차 진입분 청산 } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-02-03 11:12:26

안녕하세요 예스스탁입니다. 아래 내용 참고하셔서 수정보완하시기 바랍니다. ## Xcond 조건 ## VAR : Xcond(false,data1),AA1(0,data1),AA2(0,data1),AA3(0,data1),sumPL(0,data1); IF MarketPosition == 0 Then Xcond = False ; If TotalTrades > TotalTrades[1] Then { If (IsExitName("SX1",1) == True or IsExitName("BX1",1) == True) Then Xcond = True; Else Xcond = false; } ## 매도 조건 ## ## OpenPrice는 지표의 당일 시가값, Double은 지표값 ## If ((stime > 100000 and stime <= 240000) or (stime < 063000)) and (Xcond == false) then { If MarketPosition == 0 and CrossUp(Double, OpenPrice+15) then { Sell("S1", OnClose, DEF, 1) ; // 1차 진입 AA1 = OpenPrice+15; AA2 = OpenPrice+35; AA3 = OpenPrice+50; } //매도진입이후 if MarketPosition == -1 Then{ //최초값 대비 35상승하면 추가매도 if crossup(Double,AA2) Then { Sell("S2", OnClose, DEF, 1) ; // 2차 진입 } //최초값 대비 50상승하면 추가매도 if crossup(Double,AA3) Then { Sell("S3", OnClose, DEF, 1) ; // 3차 진입 } if CurrentContracts >= 1 and CrossDown(Double,AA1-20) Then ExitShort("sx1",OnClose,def,"S1"); if CurrentContracts >= 2 and CrossDown(Double,AA2-25) Then ExitShort("sx2",OnClose,def,"S2"); if CurrentContracts >= 3 and CrossDown(Double,AA3-30) Then ExitShort("sx3",OnClose,def,"S3"); sumPL = 0; if CurrentContracts >= 3 Then sumPL = sumPL + (AA3-Double)*1; if CurrentContracts >= 2 Then sumPL = sumPL + (AA2-Double)*1; if CurrentContracts >= 1 Then sumPL = sumPL + (AA1-Double)*1; if sumPL >= 70 or sumPL <= -300 Then ExitShort("sx4"); } } 즐거운 하루되세요 > 버들 님이 쓴 글입니다. > 제목 : 안녕하세요 좀 도와주세요 > 안녕하세요 해결되지 않는 부분이 있어 도움을 요청합니다. 차트 셋팅은 종목1(Data1), 종목2(Data2), 지표로 구성되어있고, 지표는 Data1과 Data2의 데이터 값을 이용한 지표입니다. 제가 구성하고 싶은 것은.... 1. 각종목(Data1,2)의 가격과 상관없이 오로지 지표값에 따라 진입, 청산을 하고 싶습니다. (지표값이 일정해도 두종목의 가격은 서로 다르게 움직여서 진입가격을 종목의 가격으로 지정할 수 없습니다) 2. 진입후 오버가 진행되더라도 한번의 전략이 진행되는 동안에는 최초 진입당시의 지표값을 기준으로 청산과 재진입을 반복합니다 3. 당일 시초 지표값을 OpenPrice로 두고(최초 진입 기준값) 최초 진입 기준값보다 지표값이 "15" 상승하면 ---> 1차 매도진입 최초 진입 기준값보다 지표값이 "35" 상승하면 ---> 2차 매도진입 최초 진입 기준값보다 지표값이 "50" 상승하면 ---> 3차 매도진입 4. 최초진입후 지표값이 20하락하면(지표값 "-5") 청산후 매매종료 5. 최초진입후 2차진입까지 진행되면 지표값이 2차진입기준 25하락시(지표값 "10") 2차 매도분만 청산후 2차 매도진입 시점에서 재진입과 청산 반복 6. 3차진입까지 진행되면 3차진입 지표값 대비 30하락시(지표값 "20") 3차 매도분 청산후 3차 매도진입 시점에서 재진입과 청산을 반복 7. 지표값기준 총 누적손익(보유+청산)이 "70"이면 모두 청산후 매매 종료 8. 지표값기준 총 누적손실(보유+청산)이 "300"이면 모두 손절처리후 매매 종료 제가 만들어본 수식은 피라미딩을 허용하지 않으면 1차 진입과 청산은 이루어지는데... 피라미딩 적용후 2차까지의 진입시 2차 진입분은 청산이 되는데... 1차 진입분은 청산이 안되네요... 이유를 찾지 못하겠습니다. 좀 도와 주세요^^ 감사합니다 ## Xcond 조건 ## IF MarketPosition == 0 Then Xcond = False ; If TotalTrades > TotalTrades[1] Then { If (IsExitName("SX1",1) == True or IsExitName("BX1",1) == True) Then Xcond = True; Else Xcond = false; } ## 매도 조건 ## ## OpenPrice는 지표의 당일 시가값, Double은 지표값 ## If ((stime > 100000 and stime <= 240000) or (stime < 063000)) and (Xcond == false) then { If MarketPosition == 0 and CrossUp(Double, OpenPrice+진입1) then { Sell("S1", OnClose, DEF, 1) ; // 1차 진입 AA1 = Double ; // 초기 진입지표값 기억 } SellProfit1 = AA1 - Double ; If CrossUp(SellProfit1, 목표수익1) then ExitShort("SX1", OnClose, DEF, "S1", 1) ; // 1차진입분 청산 if MarketPosition == -1 and CurrentContracts == 1 and CrossDown(SellProfit1, -진입2) then { Sell("S2", OnClose, DEF, 1) ; // 1차 진입후 손실시 2차진입 } if MarketPosition == -1 and CurrentContracts == 2 and CrossDown(Double_C, AA1+진입2-목표수익2) then { ExitShort("SX2", OnClose, DEF, "S2", 1) ; // 2차 진입분 청산 } }