커뮤니티

이전글 재문의..

프로필 이미지
초록이
2016-02-12 20:37:05
138
글번호 95351
답변완료
답변 감사합니다. 그런데, 아래 수정된 수식을 yeslanguage에 적용해보니 에러가 뜹니다. 수식이 논리적으로 어디가 안맞는지, 가동이 안됩니다. 다만, 처음 답변 수식은 에러없이 잘 돌아갑니다. 그리고, 몇가지 커뮤니케이션 에러가 있어 올립니다. 1) 16% 상승한후 하락할때, 매수싯점은 16% 상승후 최고점 대비 5% 하락이 아니라, 16% 상승한 그가격 자체 대비 5% 하락입니다. 예로, 1.0 시초가이고, 16% 상승후(1.16), 10% 추가상승하였다가 (1.26) 하락했다면, 5% 하락 기준가는 1.26*0.95가 아니라, 1.16*0.95 입니다. 2) 또한, 실제 매수가격은 1.16*0.95 이 아니라, 1.16*0.95 부터 출발하여 지속 하락할시에 최저가 대비 5% 상승한 가격입니다. 예로, 1.16*0.95에서 추가 하락하여 1.16*0.95*0.93 (16% 가격 대비 5% 하락후, 7% 추가하락)이 되었다고 할때, 실제 매수가격은 (1.16*0.95*0.93)*1.05 (7% 추가하락 가격 대비 5% 반등한 가격)입니다. ( -> 이때, 1.16*0.95 에서 1.16*0.95*0.93 까지는 쭉 하락했다가 다시 수직상승했다고 가정합니다. 만약, 1.16*0.95*0.97까지 수직 떨어졌다가 5% 수직상승하여 (1.16*0.95*0.97)*1.05가 되었다면, 이것이 실제 매수가격이 됩니다. ( 16% 가격 대비 5% 하락후, 3% 추가하락시는 3% 추가하락 가격 대비 5% 반등한 가격이 실제 매수가임) ==> 트레일스탑 기능을 매수에 적용한 사례.) <= 중요!! 이상입니다. 수정 부탁합니다. =================================================== 안녕하세요 예스스탁입니다. 주석 참고하시기 바랍니다. var : TT(0),T1(0),Entry(0),T(0),HH(0),HL(0); TT = TotalTrades; #날짜 변경되면 T는 0 if date != date[1] Then{ T1 = TT[1]; T = 0; HH = 0; HL = 0; } if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; #9시 30분 이전에 시초가 대비 16이상 상승하면 #T는 1이고 #HH는 고가 HL에는 저가 저장 if T == 0 and stime < 93000 and H >= dayopen*1.16 Then{ T = 1; HH = H; HL = L; } #T가 1일때 if T == 1 Then{ #10%돌파후 최고가 계산 if H > HH Then{ HH = H; HL = L; } #최고가 이후 최저가 계산 if L < HL Then HL = L; } #무포지션이고 T가 1이고 #당일 진입이 없고 15시 이전이고 #16%이상 상승후 최고가에서 최고가 이후 최저가가 5%이상 하락하고 #최저가에서 5%이상 상승하면 매수 if MarketPosition == 0 and T == 1 and entry < 1 and stime < 150000 and HL <= HH*0.95 and HH > 0 and HL > 0 Then buy("b1",AtStop,HL*1.05); #T가 0이면 9시 30분이후에 시초가+16%에 매수 if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then buy("b2",AtStop,Dayopen*1.16); if MarketPosition == 1 and IsEntryName("b1") == true Then{ ExitLong("BL1",AtStop,EntryPrice*0.91); if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099); } if MarketPosition == 1 and IsEntryName("b2") == true Then{ ExitLong("BL2",AtStop,EntryPrice*0.85); if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099); } buy(); } 즐거운 하루되세요 > 초록이 님이 쓴 글입니다. > 제목 : 이전글 추가문의 > 아래글에서 맨아래 (1) 번 질문을 다음과 같이 약간 수정합니다. 1) 9시 30분 이전에 시초가 대비 16% 상승한 경우에, 16%이상 상승후 하락반전하는 상황을 가정한다. 16% 가격 대비 5% 이상 하락한 이후에, 신저점대비 5% 상승한 가격에 매수함.(역트레일스탑(?) 적용) -> 예로, 16% 가격 대비 5% 하락하고, 여기서 7% 더 추가 하락하는 경우에 7% 추가하락가격을 저점으로 하여, 여기서 5% 상승한 가격에 매수함. (5% 하락이후, 신저점대비 5% 재상승한 가격에 매수함. 트레일스탑 을 익절이 아닌 저가매수에 적용함) 이때, 트레일스탑(익절)은 매수가격이 아닌, 16% 상승가격 대비 15% 상승한 가격으로 정함. (-> 매수가격에 관계없이 시초가 대비 16% 상승가격의 1.15배 가격으로 고정. 이 경우, 트레일감소폭은 3%로 고정) 손절은 매수가격 대비 10% 하락한 가격으로 고정함. 만약, 시초가 대비 16% 상승 못하면 매수 안함. 이상입니다. 수식 부탁합니다. ============================================================== 안녕하세요 예스스탁입니다. 트레일링 스탑은 일정 수익이후 감소폭도 같이 지정하셔야 합니다. 수익폭만 있어 기존수식에서와 같이 1% 감소로 지정했습니다. var : TT(0),T1(0),Entry(0),T(0); TT = TotalTrades; if date != date[1] Then{ T1 = TT[1]; T = 0; } if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if T == 0 and stime < 93000 and H >= dayopen*1.16 Then T = 1; if MarketPosition == 0 and T == 1 and entry < 1 and stime < 150000 Then buy("b1",AtLimit,DayHigh*0.95); if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then buy("b2",AtStop,Dayopen*1.16); if MarketPosition == 1 and IsEntryName("b1") == true Then{ ExitLong("BL1",AtStop,EntryPrice*0.91); if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099); } if MarketPosition == 1 and IsEntryName("b2") == true Then{ ExitLong("BL2",AtStop,EntryPrice*0.85); if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099); } 즐거운 하루되세요 > 초록이 님이 쓴 글입니다. > 제목 : 시스템 문의.. > 아래와 같은 수식을 받아 쓰고 있읍니다. (당일 시초가 대비 16% 상승하면 매수하여 트레일스탑 15%, 손절 15% 작용) var : TT(0),T1(0),Entry(0); TT = TotalTrades; if date != date[1] Then T1 = TT[1]; if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if MarketPosition == 0 and stime < 100000 and entry < 1 Then buy("b",AtStop,dayopen*1.16); #손절 SetStopLoss(15,PercentStop); #트레일링스탑 SetStopTrailing(1,15,PercentStop,1); 위 식을 아래와 같이 좀더 세분화하고 싶읍니다. 1) 9:30 이전에 시초가 대비 16% 상승한 경우에, 16% 가격 대비 5% 하락한 가격에 매수함. -> 16%이상 상승후 하락반전하는 상황에서 5% 이상 하락시에 그 가격으로 매수 들어감. (16% 상승후 하락반전하여 재상승하는 경우 가정함) (트레일스탑 22%, 손절 9%) 만약, 시초가 대비 16% 상승 못하면 매수 안함. 2) 9:30 이후 시초가 대비 16% 상승한 가격에 매수하여 트레일스탑 15%, 손절 15% 가능하겠읍니까?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-02-15 10:29:07

안녕하세요 예스스탁입니다. 식을 수정했습니다. 기존식에 불필요한 내용이 있었습니다. 기준값도 시초가+16%로 수정했습니다. var : TT(0),T1(0),Entry(0),T(0),HH(0),HL(0); TT = TotalTrades; #날짜 변경되면 T는 0 if date != date[1] Then{ T1 = TT[1]; T = 0; HH = 0; HL = 0; } if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if T == 0 and stime < 93000 and H >= dayopen*1.16 Then{ T = 1; HH = dayopen*1.16; HL = dayopen*1.16; } if T == 1 and T[1] == 1 Then{ if L < HL Then HL = L; if MarketPosition == 0 and entry < 1 and stime < 150000 and HL <= HH*0.95 and HH > 0 and HL > 0 Then buy("b1",AtStop,HL*1.05); } #T가 0이면 9시 30분이후에 시초가+16%에 매수 if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then buy("b2",AtStop,Dayopen*1.16); if MarketPosition == 1 and IsEntryName("b1") == true Then{ ExitLong("BL1",AtStop,EntryPrice*0.91); if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099); } if MarketPosition == 1 and IsEntryName("b2") == true Then{ ExitLong("BL2",AtStop,EntryPrice*0.85); if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099); } 즐거운 하루되세요 > 초록이 님이 쓴 글입니다. > 제목 : 이전글 재문의.. > 답변 감사합니다. 그런데, 아래 수정된 수식을 yeslanguage에 적용해보니 에러가 뜹니다. 수식이 논리적으로 어디가 안맞는지, 가동이 안됩니다. 다만, 처음 답변 수식은 에러없이 잘 돌아갑니다. 그리고, 몇가지 커뮤니케이션 에러가 있어 올립니다. 1) 16% 상승한후 하락할때, 매수싯점은 16% 상승후 최고점 대비 5% 하락이 아니라, 16% 상승한 그가격 자체 대비 5% 하락입니다. 예로, 1.0 시초가이고, 16% 상승후(1.16), 10% 추가상승하였다가 (1.26) 하락했다면, 5% 하락 기준가는 1.26*0.95가 아니라, 1.16*0.95 입니다. 2) 또한, 실제 매수가격은 1.16*0.95 이 아니라, 1.16*0.95 부터 출발하여 지속 하락할시에 최저가 대비 5% 상승한 가격입니다. 예로, 1.16*0.95에서 추가 하락하여 1.16*0.95*0.93 (16% 가격 대비 5% 하락후, 7% 추가하락)이 되었다고 할때, 실제 매수가격은 (1.16*0.95*0.93)*1.05 (7% 추가하락 가격 대비 5% 반등한 가격)입니다. ( -> 이때, 1.16*0.95 에서 1.16*0.95*0.93 까지는 쭉 하락했다가 다시 수직상승했다고 가정합니다. 만약, 1.16*0.95*0.97까지 수직 떨어졌다가 5% 수직상승하여 (1.16*0.95*0.97)*1.05가 되었다면, 이것이 실제 매수가격이 됩니다. ( 16% 가격 대비 5% 하락후, 3% 추가하락시는 3% 추가하락 가격 대비 5% 반등한 가격이 실제 매수가임) ==> 트레일스탑 기능을 매수에 적용한 사례.) <= 중요!! 이상입니다. 수정 부탁합니다. =================================================== 안녕하세요 예스스탁입니다. 주석 참고하시기 바랍니다. var : TT(0),T1(0),Entry(0),T(0),HH(0),HL(0); TT = TotalTrades; #날짜 변경되면 T는 0 if date != date[1] Then{ T1 = TT[1]; T = 0; HH = 0; HL = 0; } if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; #9시 30분 이전에 시초가 대비 16이상 상승하면 #T는 1이고 #HH는 고가 HL에는 저가 저장 if T == 0 and stime < 93000 and H >= dayopen*1.16 Then{ T = 1; HH = H; HL = L; } #T가 1일때 if T == 1 Then{ #10%돌파후 최고가 계산 if H > HH Then{ HH = H; HL = L; } #최고가 이후 최저가 계산 if L < HL Then HL = L; } #무포지션이고 T가 1이고 #당일 진입이 없고 15시 이전이고 #16%이상 상승후 최고가에서 최고가 이후 최저가가 5%이상 하락하고 #최저가에서 5%이상 상승하면 매수 if MarketPosition == 0 and T == 1 and entry < 1 and stime < 150000 and HL <= HH*0.95 and HH > 0 and HL > 0 Then buy("b1",AtStop,HL*1.05); #T가 0이면 9시 30분이후에 시초가+16%에 매수 if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then buy("b2",AtStop,Dayopen*1.16); if MarketPosition == 1 and IsEntryName("b1") == true Then{ ExitLong("BL1",AtStop,EntryPrice*0.91); if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099); } if MarketPosition == 1 and IsEntryName("b2") == true Then{ ExitLong("BL2",AtStop,EntryPrice*0.85); if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099); } buy(); } 즐거운 하루되세요 > 초록이 님이 쓴 글입니다. > 제목 : 이전글 추가문의 > 아래글에서 맨아래 (1) 번 질문을 다음과 같이 약간 수정합니다. 1) 9시 30분 이전에 시초가 대비 16% 상승한 경우에, 16%이상 상승후 하락반전하는 상황을 가정한다. 16% 가격 대비 5% 이상 하락한 이후에, 신저점대비 5% 상승한 가격에 매수함.(역트레일스탑(?) 적용) -> 예로, 16% 가격 대비 5% 하락하고, 여기서 7% 더 추가 하락하는 경우에 7% 추가하락가격을 저점으로 하여, 여기서 5% 상승한 가격에 매수함. (5% 하락이후, 신저점대비 5% 재상승한 가격에 매수함. 트레일스탑 을 익절이 아닌 저가매수에 적용함) 이때, 트레일스탑(익절)은 매수가격이 아닌, 16% 상승가격 대비 15% 상승한 가격으로 정함. (-> 매수가격에 관계없이 시초가 대비 16% 상승가격의 1.15배 가격으로 고정. 이 경우, 트레일감소폭은 3%로 고정) 손절은 매수가격 대비 10% 하락한 가격으로 고정함. 만약, 시초가 대비 16% 상승 못하면 매수 안함. 이상입니다. 수식 부탁합니다. ============================================================== 안녕하세요 예스스탁입니다. 트레일링 스탑은 일정 수익이후 감소폭도 같이 지정하셔야 합니다. 수익폭만 있어 기존수식에서와 같이 1% 감소로 지정했습니다. var : TT(0),T1(0),Entry(0),T(0); TT = TotalTrades; if date != date[1] Then{ T1 = TT[1]; T = 0; } if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if T == 0 and stime < 93000 and H >= dayopen*1.16 Then T = 1; if MarketPosition == 0 and T == 1 and entry < 1 and stime < 150000 Then buy("b1",AtLimit,DayHigh*0.95); if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then buy("b2",AtStop,Dayopen*1.16); if MarketPosition == 1 and IsEntryName("b1") == true Then{ ExitLong("BL1",AtStop,EntryPrice*0.91); if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099); } if MarketPosition == 1 and IsEntryName("b2") == true Then{ ExitLong("BL2",AtStop,EntryPrice*0.85); if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099); } 즐거운 하루되세요 > 초록이 님이 쓴 글입니다. > 제목 : 시스템 문의.. > 아래와 같은 수식을 받아 쓰고 있읍니다. (당일 시초가 대비 16% 상승하면 매수하여 트레일스탑 15%, 손절 15% 작용) var : TT(0),T1(0),Entry(0); TT = TotalTrades; if date != date[1] Then T1 = TT[1]; if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if MarketPosition == 0 and stime < 100000 and entry < 1 Then buy("b",AtStop,dayopen*1.16); #손절 SetStopLoss(15,PercentStop); #트레일링스탑 SetStopTrailing(1,15,PercentStop,1); 위 식을 아래와 같이 좀더 세분화하고 싶읍니다. 1) 9:30 이전에 시초가 대비 16% 상승한 경우에, 16% 가격 대비 5% 하락한 가격에 매수함. -> 16%이상 상승후 하락반전하는 상황에서 5% 이상 하락시에 그 가격으로 매수 들어감. (16% 상승후 하락반전하여 재상승하는 경우 가정함) (트레일스탑 22%, 손절 9%) 만약, 시초가 대비 16% 상승 못하면 매수 안함. 2) 9:30 이후 시초가 대비 16% 상승한 가격에 매수하여 트레일스탑 15%, 손절 15% 가능하겠읍니까?