커뮤니티

문의드립니다.

프로필 이미지
카르마다
2023-11-26 23:39:42
985
글번호 174330
답변완료
수고 많으십니다. [전략개요] 시가를 상향 돌파하면 매수, 하향 돌파하면 매도하는 돌파 매매와 시가를 지지하면 매수, 저항 받으면 매도하는 지지저항 매매를 합친 전략입니다. [전제조건] 1. 시가기준 50틱 이상 시가 위나 아래로 반드시 1번은 갔다가 내려오거나 올라가서 1. 시가에 근접하거나 2. 시가를 완전히 돌파할 때만 작동해야 합니다. 2. 1번 50틱 변동성이 생긴후 되돌림이 나와 진입이 1회 되었다면 그다음 다시 50틱 이상 위나 아래로 변동성이 생기기 전까진 진입 신호가 나오지 않아야 합니다. [진입/손청조건] 1. [시가에서 50틱 이상 빠졌다가 올라와서] 시가 바로 3틱 아래에서 1계약, 시가에서 추가로 1계약, 총 2계약을 "매도"진입합니다. 만일 시가를 뚫고 10틱을 올라가 버리면 모두 손청합니다. 2. [시가에서 50틱 이상 빠졌다가 올라와서] 시가를 돌파해 15틱 올라가면 1계약, 25틱 올라가면 추가로 1계약 더 "매수"합니다. 만일 이후 익절되지 못하고 되돌림이 나와 시가를 뚫고 5틱 빠져버리면 모두 손청합니다. [익절조건] 진입가에서 30틱 이상 수익나면 1계약 먼저 익절 후 나머지 1계약은 진입가에서 30틱 이상 올라간 시점부터 최고점대비 15틱이 밀리면 익절합니다. ★ 위의 [진입/손청조건]과 반대로도 적용되게 수식 부탁드립니다. 덕분에 실력이 조금씩 늘고 있습니다. 노고에 늘 진심으로 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-11-28 11:26:08

안녕하세요 예스스탁입니다. var : T(0); var : upB1(False),upB2(False),upS1(False),upS2(False); var : dnB1(False),dnB2(False),dnS1(False),dnS2(False); if Bdate != Bdate[1] Then { T = 0; upB1 = False; upB2 = False; upS1 = False; upS2 = False; dnB1 = False; dnB2 = False; dnS1 = False; dnS2 = False; } if H >= DayOpen+PriceScale*50 Then { T = 1; upB1 = true; upB2 = true; upS1 = true; upS2 = true; } if L <= DayOpen-PriceScale*50 Then { T = -1; dnB1 = true; dnB2 = true; dnS1 = true; dnS2 = true; } if dnS1 == true and H >= DayOpen-PriceScale*3 Then DnS1 = False; if dnS2 == true and H >= DayOpen Then dnS2 = False; if dnB1 == true and H >= DayOpen+PriceScale*15 Then dnB1 = False; if dnB2 == true and H >= DayOpen+PriceScale*25 Then dnB2 = False; if dnB1 == False and dnB2 == true and L <= DayOpen-PriceScale*5 Then dnB2 = False; if upS1 == true and L <= DayOpen-PriceScale*15 Then upS1 = False; if upS2 == true and L <= DayOpen-PriceScale*25 Then upS2 = False; if upS1 == false and upS2 == true and H >= DayOpen+PriceScale*5 Then upS2 = False; if upB1 == true and L <= DayOpen+PriceScale*3 Then upB1 = False; if upB2 == true and L <= DayOpen Then upB2 = False; if NextBarSdate == sDate Then { if dnS1 == true then Sell("dnS1",AtLimit,DayOpen-PriceScale*3,1); if dnS2 == true then Sell("dnS2",AtLimit,DayOpen,1); if dnB1 == true then Buy("dnB1",AtStop,DayOpen+PriceScale*15,1); if dnB2 == true then Buy("DnB2",AtStop,DayOpen+PriceScale*25,1); if upS1 == true then Sell("upS1",AtStop,DayOpen-PriceScale*15,1); if upS2 == true then Sell("upS2",AtStop,DayOpen-PriceScale*25,1); if upB1 == true then Buy("upB1",AtLimit,DayOpen+PriceScale*3,1); if upB2 == true then Buy("upB2",AtLimit,DayOpen,1); } if MarketPosition == -1 Then { if T == -1 Then ExitShort("sx1",AtStop,DayOpen+PriceScale*10); if T == 1 Then ExitShort("sx2",AtStop,DayOpen+PriceScale*5); if CurrentContracts == MaxContracts Then ExitShort("sp",AtLimit,EntryPrice-PriceScale*30,"",1,1); Else ExitShort("str",AtLimit,lowest(L,BarsSinceEntry)+PriceScale*15); } if MarketPosition == 1 Then { if T == -1 Then ExitLong("bx1",AtStop,DayOpen-PriceScale*5); if T == 1 Then ExitLong("bx2",AtStop,DayOpen-PriceScale*10); if CurrentContracts == MaxContracts Then ExitLong("bp",AtLimit,EntryPrice+PriceScale*30,"",1,1); Else ExitLong("btr",AtLimit,highest(H,BarsSinceEntry)-PriceScale*15); } 즐거운 하루되세요 > 카르마다 님이 쓴 글입니다. > 제목 : 문의드립니다. > 수고 많으십니다. [전략개요] 시가를 상향 돌파하면 매수, 하향 돌파하면 매도하는 돌파 매매와 시가를 지지하면 매수, 저항 받으면 매도하는 지지저항 매매를 합친 전략입니다. [전제조건] 1. 시가기준 50틱 이상 시가 위나 아래로 반드시 1번은 갔다가 내려오거나 올라가서 1. 시가에 근접하거나 2. 시가를 완전히 돌파할 때만 작동해야 합니다. 2. 1번 50틱 변동성이 생긴후 되돌림이 나와 진입이 1회 되었다면 그다음 다시 50틱 이상 위나 아래로 변동성이 생기기 전까진 진입 신호가 나오지 않아야 합니다. [진입/손청조건] 1. [시가에서 50틱 이상 빠졌다가 올라와서] 시가 바로 3틱 아래에서 1계약, 시가에서 추가로 1계약, 총 2계약을 "매도"진입합니다. 만일 시가를 뚫고 10틱을 올라가 버리면 모두 손청합니다. 2. [시가에서 50틱 이상 빠졌다가 올라와서] 시가를 돌파해 15틱 올라가면 1계약, 25틱 올라가면 추가로 1계약 더 "매수"합니다. 만일 이후 익절되지 못하고 되돌림이 나와 시가를 뚫고 5틱 빠져버리면 모두 손청합니다. [익절조건] 진입가에서 30틱 이상 수익나면 1계약 먼저 익절 후 나머지 1계약은 진입가에서 30틱 이상 올라간 시점부터 최고점대비 15틱이 밀리면 익절합니다. ★ 위의 [진입/손청조건]과 반대로도 적용되게 수식 부탁드립니다. 덕분에 실력이 조금씩 늘고 있습니다. 노고에 늘 진심으로 감사드립니다.