커뮤니티

이전 거래 손실, 이익 시 대응방법

프로필 이미지
히익
2022-05-20 14:42:05
933
글번호 159098
답변완료
안녕하세요 예트 정말 잘 이용하고 있습니다. 터틀 트레이딩을 공부하고 있는데요! <20일 신고가 돌파시 매수, 10일 신저가 돌파시 매수청산, 20일 신저가 돌파시 매도, 10일 신고가 돌파시 매도청산. 이전 거래가 손실일 때만 진입하고 이익일 때는 진입하지 않는다> 아래는 이에 대한 수식입니다. 근데 문제가 이익이 한번 나면 그 다음부터 진입하지 않는데.. 이익 거래가 난 후 가상매매를 통해 이전 매매가 손실이라면 다시 진입하도록 할 수 있는 방법이 있을까요? 이를 수식으로 가능할지 여쭈어 봅니다. Input&#160;:&#160;shortPeriod(20),&#160;exitperiod(10); Value1&#160;=&#160;NthHighest(1,&#160;high,&#160;shortPeriod); Value2&#160;=&#160;NthLowest(1,&#160;Low,&#160;shortPeriod); Value3&#160;=&#160;NthLowest(1,&#160;Low,&#160;exitperiod); Value4&#160;=&#160;NthHighest(1,&#160;Low,&#160;exitperiod);&#160; if&#160;TotalTrades&#160;==&#160;0&#160;or&#160;(PositionProfit(1)&#160;<&#160;0)&#160;Then{&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;If&#160;MarketPosition&#160;==&#160;0&#160;and&#160;CrossUP(Close,&#160;Value1[1])&#160;Then&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Buy("LE1");&#160; &#160;&#160;&#160;&#160;&#160;&#160;If&#160;MarketPosition&#160;==0&#160;and&#160;CrossDown(Close,&#160;Value2[1])&#160;Then&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Sell("SE1");&#160; } &#160;&#160;&#160;&#160; If&#160;entryname=="LE1"&#160;and&#160;CrossDown(Close,&#160;Value3[1])&#160;Then &#160;&#160;&#160;&#160;&#160;&#160;Exitlong("Lx"); &#160;&#160;&#160;&#160; If&#160;entryname&#160;==&#160;"SE1"&#160;and&#160;CrossUp(Close,&#160;Value4[1])&#160;Then &#160;&#160;&#160;&#160;&#160;&#160;ExitShort("Sx");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-05-20 15:43:31

안녕하세요 예스스탁입니다. Input: shortPeriod(20),exitperiod(10); var : trade(true),mp(0),ep(0),xp(0); Value1 = Highest(high, shortPeriod); Value2 = Lowest(Low, shortPeriod); Value3 = Lowest(Low, exitperiod); Value4 = Highest(High, exitperiod); if TotalTrades > TotalTrades[1] Then { if PositionProfit(1) < 0 Then trade = true; Else { trade = False; mp = 0; } } if MarketPosition == 0 and trade == False Then { If mp == 0 and CrossUP(Close, Value1[1]) Then { ep = c; mp = 1; } If mp == 0 and CrossDown(Close, Value2[1]) Then { ep = c; mp = -1; } If mp == 1 and CrossDown(Close, Value3[1]) Then { mp = 0; xp = c; if xp < ep Then trade = true; } If mp == -1 and CrossUp(Close, Value4[1]) Then { mp = 0; xp = c; if xp > ep Then trade = true; } } if trade == true Then { If MarketPosition == 0 and CrossUP(Close, Value1[1]) Then Buy("LE1"); If MarketPosition ==0 and CrossDown(Close, Value2[1]) Then Sell("SE1"); } If entryname=="LE1" and CrossDown(Close, Value3[1]) Then Exitlong("Lx"); If entryname == "SE1" and CrossUp(Close, Value4[1]) Then ExitShort("Sx"); 즐거운 하루되세요 > 히익 님이 쓴 글입니다. > 제목 : 이전 거래 손실, 이익 시 대응방법 > 안녕하세요 예트 정말 잘 이용하고 있습니다. 터틀 트레이딩을 공부하고 있는데요! <20일 신고가 돌파시 매수, 10일 신저가 돌파시 매수청산, 20일 신저가 돌파시 매도, 10일 신고가 돌파시 매도청산. 이전 거래가 손실일 때만 진입하고 이익일 때는 진입하지 않는다> 아래는 이에 대한 수식입니다. 근데 문제가 이익이 한번 나면 그 다음부터 진입하지 않는데.. 이익 거래가 난 후 가상매매를 통해 이전 매매가 손실이라면 다시 진입하도록 할 수 있는 방법이 있을까요? 이를 수식으로 가능할지 여쭈어 봅니다. Input&#160;:&#160;shortPeriod(20),&#160;exitperiod(10); Value1&#160;=&#160;NthHighest(1,&#160;high,&#160;shortPeriod); Value2&#160;=&#160;NthLowest(1,&#160;Low,&#160;shortPeriod); Value3&#160;=&#160;NthLowest(1,&#160;Low,&#160;exitperiod); Value4&#160;=&#160;NthHighest(1,&#160;Low,&#160;exitperiod);&#160; if&#160;TotalTrades&#160;==&#160;0&#160;or&#160;(PositionProfit(1)&#160;<&#160;0)&#160;Then{&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;If&#160;MarketPosition&#160;==&#160;0&#160;and&#160;CrossUP(Close,&#160;Value1[1])&#160;Then&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Buy("LE1");&#160; &#160;&#160;&#160;&#160;&#160;&#160;If&#160;MarketPosition&#160;==0&#160;and&#160;CrossDown(Close,&#160;Value2[1])&#160;Then&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Sell("SE1");&#160; } &#160;&#160;&#160;&#160; If&#160;entryname=="LE1"&#160;and&#160;CrossDown(Close,&#160;Value3[1])&#160;Then &#160;&#160;&#160;&#160;&#160;&#160;Exitlong("Lx"); &#160;&#160;&#160;&#160; If&#160;entryname&#160;==&#160;"SE1"&#160;and&#160;CrossUp(Close,&#160;Value4[1])&#160;Then &#160;&#160;&#160;&#160;&#160;&#160;ExitShort("Sx");