커뮤니티

요청드립니다.

프로필 이미지
라떼처럼
2018-11-25 23:04:32
207
글번호 123818
답변완료

첨부 이미지

아래 식에서 Price Channel 4개의 모든 Channel이 [1]대비 같거나 상승중 일때 조건에 따라 매수 Price Channel 4개의 모든 Channel이 [1]대비 같거나 하락중 일때 조건에 따라 매도 를 하고 싶은데 Price Channel 4개를 지표로 나타내고 보니 지표상 하락중인데 매수가 나타납니다.(그림참조) 수정좀 부탁드립니다. SetStopProfittarget(Target) 목표청산에 도달하면 최고값대비 10% 하락하면 청산 해선 PriceScale을 고려하여 청산 수식 포함요청드립니다. ###매수 매도 수식### input : 손절(80),Target(0.4); var : BH(0),SL(0),HE(0),LE(0); var : T(0), S(0); ##Price Chanel INPUT : Length51(50), Length52(200) ; VAR : Tchan51(0), Bchan52(0),Tchan53(0), Bchan54(0);; Tchan51 = Highest(High, Length51); Bchan52 = Lowest(Low, Length51); Tchan53 = Highest(High, Length52); Bchan54 = Lowest(Low, Length52); input : P31(30), P82(280); var31 = wma(C,P31); var82 = wma(C,P82); ##M Price Chanel // Tchan53 = Highest(High, Length52)[1]; # Highest Length52(200) // Tchan51 = Highest(High, Length51)[1]; # Highest Length51(50) // Bchan52 = Lowest(Low, Length51)[1]; # Lowest Length51(50) // Bchan54 = Lowest(Low, Length52)[1]; # Lowest Length52(200) ## Price Chanel 4개 모두 상승 중이면 S = 1 if Tchan53[1] < Tchan53 and Tchan51[1] < Tchan51 and Bchan52[1] < Bchan52 and Bchan54[1] < Bchan54 then { S = 1; } ## Price Chanel 4개 모두 하락 중이면 S = -1 if Tchan53[1] > Tchan53 and Tchan51[1] > Tchan51 and Bchan52[1] > Bchan52 and Bchan54[1] > Bchan54 Then { S = -1; } if S == 1 and Crossup(var31, var82) Then buy("B2"); if S == -1 and Crossdown(var31, var82) Then sell("S2"); ### 청산 if MarketPosition == 1 Then{ BH = highest(H,BarsSinceEntry); if MaxEntries == 1 Then HE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then HE = LatestEntryPrice(0); SetStopProfittarget(Target); ExitLong("B손절",AtStop,HE-PriceScale*손절); } if MarketPosition == -1 Then{ SL = Lowest(L,BarsSinceEntry); if MaxEntries == 1 Then LE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) < LE Then LE = LatestEntryPrice(0); SetStopProfittarget(Target); ExitShort("S손절",AtStop,LE+PriceScale*손절); } /* #### 지표 INPUT : Length51(50), Length52(200) ; VAR : Tchan51(0), Bchan52(0),Tchan53(0), Bchan54(0); Tchan51 = Highest(High, Length51); Bchan52 = Lowest(Low, Length51); Tchan53 = Highest(High, Length52); Bchan54 = Lowest(Low, Length52); Plot51(Tchan51, "TOP50"); Plot52(Bchan52, "BOT50"); Plot53(Tchan53, "TOP200"); Plot54(Bchan54, "BOT200");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-11-26 15:40:40

안녕하세요? 예스스탁입니다. Tchan53[1] 의 경우 한 봉전의 Tchan53 값을 의미합니다. 그런데, 의도하시는 내용은 한봉전이 아니라 과거 유동적인 N봉전에 상승이나 하락을 했는지를 판단하시려는 것으로 생각이 됩니다. 진입식은 아래와 같이 작성하시면 됩니다. ###매수 매도 수식### input : 손절(80),Target(0.4); var : BH(0),SL(0),HE(0),LE(0); var : T(0), S(0); ##Price Chanel INPUT : Length51(50), Length52(200) ; VAR : Tchan51(0), Bchan52(0),Tchan53(0), Bchan54(0);; Tchan51 = Highest(High, Length51); Bchan52 = Lowest(Low, Length51); Tchan53 = Highest(High, Length52); Bchan54 = Lowest(Low, Length52); input : P31(30), P82(280); var31 = wma(C,P31); var82 = wma(C,P82); if Tchan51 > tchan51[1] Then value1 = 1; if Tchan51 < tchan51[1] Then value1 = -1; if Bchan52 > Bchan52[1] Then value2 = 1; if Bchan52 < Bchan52[1] Then value2 = -1; if Tchan53 > tchan53[1] Then value3 = 1; if Tchan53 < tchan53[1] Then value4 = -1; if Bchan54 > Bchan54[1] Then value4 = 1; if Bchan54 < Bchan54[1] Then value4 = -1; ## Price Chanel 4개 모두 상승 중이면 S = 1 if value1 + value2 + value3 + value4 == 4 then { S = 1; } ## Price Chanel 4개 모두 하락 중이면 S = -1 if value1 + value2 + value3 + value4 == -4 Then { S = -1; } if S == 1 and Crossup(var31, var82) Then buy("B2"); if S == -1 and Crossdown(var31, var82) Then sell("S2"); 청산의 경우 목표수익 도달후 10% 반대로 움직이면 청산한다고 하셨는데, setstopprofit의 조건을 만족하게 되면 바로 청산되므로 setstopprofittarget을 사용할 수는 없고 진이 이후의 최고가나 최저가를 계산해서 일정값 반대로 움직이면 청산하는 것으로 작성하셔야 할것 같습니다. # 진입후 최고가(최저가)가 진입가+20틱(진입가-20틱) 이상(이하)면 최고가(최저가)에서 10틱 하락시 청산 if highest(H, BarsSinceEntry+1) > EntryPrice + PriceScale*20 Then exitlong("EL", atstop, highest(H, BarsSinceEntry+1)- PriceScale*10); if lowest(L, BarsSinceEntry+1) > EntryPrice - PriceScale*20 Then exitshort("ES", atstop, Lowest(L, BarsSinceEntry+1)+ PriceScale*10); 감사합니다. > 라떼처럼 님이 쓴 글입니다. > 제목 : 요청드립니다. > 아래 식에서 Price Channel 4개의 모든 Channel이 [1]대비 같거나 상승중 일때 조건에 따라 매수 Price Channel 4개의 모든 Channel이 [1]대비 같거나 하락중 일때 조건에 따라 매도 를 하고 싶은데 Price Channel 4개를 지표로 나타내고 보니 지표상 하락중인데 매수가 나타납니다.(그림참조) 수정좀 부탁드립니다. SetStopProfittarget(Target) 목표청산에 도달하면 최고값대비 10% 하락하면 청산 해선 PriceScale을 고려하여 청산 수식 포함요청드립니다. ###매수 매도 수식### input : 손절(80),Target(0.4); var : BH(0),SL(0),HE(0),LE(0); var : T(0), S(0); ##Price Chanel INPUT : Length51(50), Length52(200) ; VAR : Tchan51(0), Bchan52(0),Tchan53(0), Bchan54(0);; Tchan51 = Highest(High, Length51); Bchan52 = Lowest(Low, Length51); Tchan53 = Highest(High, Length52); Bchan54 = Lowest(Low, Length52); input : P31(30), P82(280); var31 = wma(C,P31); var82 = wma(C,P82); ##M Price Chanel // Tchan53 = Highest(High, Length52)[1]; # Highest Length52(200) // Tchan51 = Highest(High, Length51)[1]; # Highest Length51(50) // Bchan52 = Lowest(Low, Length51)[1]; # Lowest Length51(50) // Bchan54 = Lowest(Low, Length52)[1]; # Lowest Length52(200) ## Price Chanel 4개 모두 상승 중이면 S = 1 if Tchan53[1] < Tchan53 and Tchan51[1] < Tchan51 and Bchan52[1] < Bchan52 and Bchan54[1] < Bchan54 then { S = 1; } ## Price Chanel 4개 모두 하락 중이면 S = -1 if Tchan53[1] > Tchan53 and Tchan51[1] > Tchan51 and Bchan52[1] > Bchan52 and Bchan54[1] > Bchan54 Then { S = -1; } if S == 1 and Crossup(var31, var82) Then buy("B2"); if S == -1 and Crossdown(var31, var82) Then sell("S2"); ### 청산 if MarketPosition == 1 Then{ BH = highest(H,BarsSinceEntry); if MaxEntries == 1 Then HE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then HE = LatestEntryPrice(0); SetStopProfittarget(Target); ExitLong("B손절",AtStop,HE-PriceScale*손절); } if MarketPosition == -1 Then{ SL = Lowest(L,BarsSinceEntry); if MaxEntries == 1 Then LE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) < LE Then LE = LatestEntryPrice(0); SetStopProfittarget(Target); ExitShort("S손절",AtStop,LE+PriceScale*손절); } /* #### 지표 INPUT : Length51(50), Length52(200) ; VAR : Tchan51(0), Bchan52(0),Tchan53(0), Bchan54(0); Tchan51 = Highest(High, Length51); Bchan52 = Lowest(Low, Length51); Tchan53 = Highest(High, Length52); Bchan54 = Lowest(Low, Length52); Plot51(Tchan51, "TOP50"); Plot52(Bchan52, "BOT50"); Plot53(Tchan53, "TOP200"); Plot54(Bchan54, "BOT200");