커뮤니티
좀 이상한게 있어서요
2013-03-07 17:16:10
204
글번호 60407
좀 이상합니다
같은 식으로 만든 시뮬레이션입니다
왼쪽에는 정확히 수식대로 신호가 나온거 같은데 오른쪽에는
macd오실레이터가 분명히 음봉으로 바뀌었지만 반복청산이 나오질
않았습니다
확인한번 부탁 드립니다
input : rsiPeriod(2), RSVValue(67),N(5),X(3);
input : maPeriod1(8),maPeriod2(16),maPeriod3(23), maPeriod4(47);
input : Vol(1110);
input : 간격(0.3);
input : LossPoint(0.65);
input : ProfitPoint(3.7);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if Condition1 == false
&& MarketPosition == 0
&& V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
&& MACDO > 0
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
cnt = 0;
}
# 반복매수조건
if Condition1 == true and cnt == 0 and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{
buy("반복매수");
cnt = 1;
}
#반복매수청산조건
if MarketPosition == 1 and CrossDown(MACDO,0) and cnt == 0 Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if Condition1 == true and C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitShort("손절",AtStop,EntryPrice+Losspoint);
ExitShort("목표",AtLimit,EntryPrice-Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
- 1. 3월 7일.JPG (0.41 MB)
답변 1
예스스탁 예스스탁 답변
2013-03-07 18:20:33
안녕하세요
예스스탁입니다.
input : rsiPeriod(2), RSVValue(67),N(5),X(3);
input : maPeriod1(8),maPeriod2(16),maPeriod3(23), maPeriod4(47);
input : Vol(1110);
input : 간격(0.3);
input : LossPoint(0.65);
input : ProfitPoint(3.7);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
if date != date[1] Then
Condition1 = false;
#최초 매수조건
if Condition1 == false
&& MarketPosition == 0
&& V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
&& MACDO > 0
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true
&& MarketPosition == 0
&& IsExitName("반복청산",1) == true
&& IsEntryName("최초매수",1) == true
&& EntryDate(1) == sdate
&& C >= mav4+PriceScale*X
&& (CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{
buy("반복매수");
}
#반복매수청산조건
if MarketPosition == 1
&& CrossDown(MACDO,0)
&& IsEntryName("최초매수") == true Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitShort("손절",AtStop,EntryPrice+Losspoint);
ExitShort("목표",AtLimit,EntryPrice-Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
즐거운 하루되세요
> 아라미스33 님이 쓴 글입니다.
> 제목 : 좀 이상한게 있어서요
> 좀 이상합니다
같은 식으로 만든 시뮬레이션입니다
왼쪽에는 정확히 수식대로 신호가 나온거 같은데 오른쪽에는
macd오실레이터가 분명히 음봉으로 바뀌었지만 반복청산이 나오질
않았습니다
확인한번 부탁 드립니다
input : rsiPeriod(2), RSVValue(67),N(5),X(3);
input : maPeriod1(8),maPeriod2(16),maPeriod3(23), maPeriod4(47);
input : Vol(1110);
input : 간격(0.3);
input : LossPoint(0.65);
input : ProfitPoint(3.7);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if Condition1 == false
&& MarketPosition == 0
&& V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
&& MACDO > 0
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
cnt = 0;
}
# 반복매수조건
if Condition1 == true and cnt == 0 and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{
buy("반복매수");
cnt = 1;
}
#반복매수청산조건
if MarketPosition == 1 and CrossDown(MACDO,0) and cnt == 0 Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if Condition1 == true and C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitShort("손절",AtStop,EntryPrice+Losspoint);
ExitShort("목표",AtLimit,EntryPrice-Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;