커뮤니티
[STAD_04] Mom_Retrcmnt
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);