커뮤니티

[STAD_04] Mom_Retrcmnt

프로필 이미지
cinamon
2014-06-19 19:11:44
181
글번호 75980
답변완료
Input: XMALen(5), Len2(15); Vars: PriceEMA(0), HIghEMA(0), LowEMA(0), MACDSigLine(0), MACDDiff(0); Vars: TrendUp(false), MomentumB(false), RetracementUP(false), ExitPrc(0); Vars: HighestHi(0), HighestRSI(0), LowestRSI(0), Lowestlo(999999), buySwitch(false),SellSwitch(false); Vars: DMISpread(0), Fase1(false), fase2(false); PriceEMA = ema(C,XMALen); HIghEMA = ema(H,Len2); LowEMA = ema(L, Len2); MACDSigLine = ema( MACD(3,10), 15); MACDDiff = MACD(3,10) - MACDSigLine; DMISpread = Diplus(15) - DiMinus(15); TrendUp = PriceEMA > HIghEMA and MACDSigLine > 0; MomentumB = RSI(5) >= 70 AND DMISpread > 15; --------------------------------------------------------------------- If TrendUp and MomentumB then { If Fase1 == False then { HighestHi = 0; HighestRSI = 0; } Fase1 = true; Fase2 = false; If High > HighestHi then HighestHi = high; If RSI(5) > HighestRSI then HighestRSI = RSI(5); } RetracementUp = Fase1 AND PriceEMA < HIghEMA AND MACDDiff < 0 AND (RSI(5)<=50 OR RSI(5)<highestRSI-30); If RetracementUp then { If Fase2 == false then LowestLo = 999999; Fase2 = True; Fase1 = False; buySwitch = false; } If Fase2 then { If Low < LowestLo then LowestLo = Low; BuySwitch = true; } If BuySwitch and MarketPosition<> 1 then { Buy("",atstop,LowestLo + (HighestHi - LowestLo )/3 ); } If MarketPosition == 1 and (PriceEMA < LowEMA OR MACDSigLine < 0) then { BuySwitch = False; Fase1 = False; Fase2 = False; ExitLong("EL", AtMarket); } ----------------------------------------------------------------------- 이부분 설명좀 달아주시면 감사하겠습니다 여러번 읽어 봤지만 이해가 안가서요 부탁드립니다 If MarketPosition <> 1 then ExitLong("EL2",atstop,Low - ATR(10)); else ExitLong("EL3",atstop, EntryPrice - ATR(10)); If SwingLowbar(1,Low,3,3,7) == 3 AND MarketPosition == 1 then ExitPrc = Low[3]; ExitPrc = MinList(LowEMA, ExitPrc); If MarketPosition == 1 then ExitLong("EL4",atstop,ExitPrc);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-06-20 10:33:37

안녕하세요 예스스탁입니다. 기본틀은 TrendUp과 MomentumB 조건이 만족하는 구간(1국면)에서 최고가를 계산하고 위 구간중 처음 RetracementUp이 만족하면(2국면) 그 이후의 최저가를 구해서 최저가기준으로 최고가와 최저가의 1/3 지점까지 가격이 상승하면 매수를 하는 식입니다. Input: XMALen(5), Len2(15); Vars: PriceEMA(0), HIghEMA(0), LowEMA(0), MACDSigLine(0), MACDDiff(0); Vars: TrendUp(false), MomentumB(false), RetracementUP(false), ExitPrc(0); Vars: HighestHi(0), HighestRSI(0), LowestRSI(0), Lowestlo(999999), buySwitch(false),SellSwitch(false); Vars: DMISpread(0), Fase1(false), fase2(false); PriceEMA = ema(C,XMALen); HIghEMA = ema(H,Len2); LowEMA = ema(L, Len2); MACDSigLine = ema( MACD(3,10), 15); MACDDiff = MACD(3,10) - MACDSigLine; DMISpread = Diplus(15) - DiMinus(15); #종가지수이평이 고가지수이평보다 크고 MACD시그널이 0보다 크면 true 아니면 false TrendUp = PriceEMA > HIghEMA and MACDSigLine > 0; #RSI가 70이상이고 +di와 -di의 차이가 15이상이면 MomentumB = RSI(5) >= 70 AND DMISpread > 15; #--------------------------------------------------------------------- #TrendUp과 MomentumB이 동시에 조건만족하면 If TrendUp and MomentumB then { If Fase1 == False then { HighestHi = 0; HighestRSI = 0; } //페이즈1은 true; Fase1 = true; //페이즈2는 false Fase2 = false; //조건만족구간의 최고가 If High > HighestHi then HighestHi = high; //조건만족구간의 RSI최고가 If RSI(5) > HighestRSI then HighestRSI = RSI(5); } #fase1이 true이고 #종가지수이평이 고가지수이평보다 작고 #MACD가 MACD시그널보다 작고 #RSI가 50이하이고 위 조건이후 RSI최고가에서 30이상 하락했으면 true 아니면 false RetracementUp = Fase1 AND PriceEMA < HIghEMA AND MACDDiff < 0 AND (RSI(5)<=50 OR RSI(5)<highestRSI-30); #RetracementUp조건이 만족하는 구간이고 If RetracementUp then { #Fase2가 false이면 LowestLo는 999999(특정조건이후 최저가 계산을 위해 높은값지정) If Fase2 == false then LowestLo = 999999; //fase2는 true Fase2 = True; //fase1은 falsee Fase1 = False; //buySwitch은 false buySwitch = false; } #Fase2가 true이면 If Fase2 then { //true구간 최저가 계산 If Low < LowestLo then LowestLo = Low; //BuySwitch를 true로 지정 BuySwitch = true; } #BuySwitch가 true가 되면 지정한 가격이상의 시세발생하면 주문 If BuySwitch and MarketPosition<> 1 then { Buy("",atstop,LowestLo + (HighestHi - LowestLo )/3 ); } #청산되면 false로 초기화 If MarketPosition == 1 and (PriceEMA < LowEMA OR MACDSigLine < 0) then { BuySwitch = False; Fase1 = False; Fase2 = False; ExitLong("EL", AtMarket); } 즐거운 하루되세요 > cinamon 님이 쓴 글입니다. > 제목 : [STAD_04] Mom_Retrcmnt > Input: XMALen(5), Len2(15); Vars: PriceEMA(0), HIghEMA(0), LowEMA(0), MACDSigLine(0), MACDDiff(0); Vars: TrendUp(false), MomentumB(false), RetracementUP(false), ExitPrc(0); Vars: HighestHi(0), HighestRSI(0), LowestRSI(0), Lowestlo(999999), buySwitch(false),SellSwitch(false); Vars: DMISpread(0), Fase1(false), fase2(false); PriceEMA = ema(C,XMALen); HIghEMA = ema(H,Len2); LowEMA = ema(L, Len2); MACDSigLine = ema( MACD(3,10), 15); MACDDiff = MACD(3,10) - MACDSigLine; DMISpread = Diplus(15) - DiMinus(15); TrendUp = PriceEMA > HIghEMA and MACDSigLine > 0; MomentumB = RSI(5) >= 70 AND DMISpread > 15; --------------------------------------------------------------------- If TrendUp and MomentumB then { If Fase1 == False then { HighestHi = 0; HighestRSI = 0; } Fase1 = true; Fase2 = false; If High > HighestHi then HighestHi = high; If RSI(5) > HighestRSI then HighestRSI = RSI(5); } RetracementUp = Fase1 AND PriceEMA < HIghEMA AND MACDDiff < 0 AND (RSI(5)<=50 OR RSI(5)<highestRSI-30); If RetracementUp then { If Fase2 == false then LowestLo = 999999; Fase2 = True; Fase1 = False; buySwitch = false; } If Fase2 then { If Low < LowestLo then LowestLo = Low; BuySwitch = true; } If BuySwitch and MarketPosition<> 1 then { Buy("",atstop,LowestLo + (HighestHi - LowestLo )/3 ); } If MarketPosition == 1 and (PriceEMA < LowEMA OR MACDSigLine < 0) then { BuySwitch = False; Fase1 = False; Fase2 = False; ExitLong("EL", AtMarket); } ----------------------------------------------------------------------- 이부분 설명좀 달아주시면 감사하겠습니다 여러번 읽어 봤지만 이해가 안가서요 부탁드립니다 If MarketPosition <> 1 then ExitLong("EL2",atstop,Low - ATR(10)); else ExitLong("EL3",atstop, EntryPrice - ATR(10)); If SwingLowbar(1,Low,3,3,7) == 3 AND MarketPosition == 1 then ExitPrc = Low[3]; ExitPrc = MinList(LowEMA, ExitPrc); If MarketPosition == 1 then ExitLong("EL4",atstop,ExitPrc);