커뮤니티
아래 수식을 수정작업좀 부탁드립니다.
2016-10-25 08:03:03
124
글번호 103303
안녕하세요 예스스탁님
50203번방에서 재수정 내용입니다.
위의 첨부파일 그림에서 보는바와 같이 아래 시스템 수식에서
검은선을 돌파/이탈시 진입이 안되구요
현재는 스위칭 기능 위주로 수식이 작성되어 있는데
이평선 돌파/이탈후에는 스위칭 기능을 없애고 매수/매도 독립신호로
진입과 청산 기능이 동작하도록 되어야 합니다.
현재 아래 수식에서는 "시스템성능보고서"에서 보는바와 같이 청산만되고
진입은 되지않아야 되는데 같은가격에 같이 진입되는 것으로 나옵니다.
결론을 서술하면 아래 수식을 이용하여 수정작업좀 부탁드립니다.
1. 주가가 검은선(27일선) 돌파/이탈시에는 스위칭 기능 수식을 사용해 주시고
2. 주가가 검은선(27일선) 돌파후에는 매수신호만 진입하고 매도신호출현일때는 청산만
주가가 검은선(27일선) 이탈후에는 매도신호만 진입하고 매수신호출현일때는 청산만
되독록 하는 아래 수식을 수정작업좀 부탁드립니다.
input : P(14),BBP(20),dv(2),MAP(60),X(15),short(12),long(26),sig(9),Period(27);
var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0);
var : MACDV(0),MACDS(0),mav1(0);
ADXV = ADX(P);
DP = Diplus(P);
DM = DiMinus(P);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
mav = ma(C,MAP);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
mav1 = ma(C,Period);
if crossup(ADXV,20) and ADXV >= X Then{
if DP > DM and dp < 25 Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("매수진입1");
}
if DP < DM and dm < 25 Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("매도진입1");
}
}
if MarketPosition == 1 and IsEntryName("매수진입1") == true Then{
if CrossDown(DP,DM) Then
ExitLong();
}
if MarketPosition == -1 and IsEntryName("매도진입1") == true Then{
if CrossUp(DP,DM) Then
ExitShort();
}
if crossup(ADXV,10) and ADXV >= X Then{
if DP > DM Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("매수진입4");
}
if DP < DM Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("매도진입4");
}
}
if MarketPosition == 1 and IsEntryName("매수진입4") == true Then{
if CrossDown(DP,DM) Then
ExitLong();
}
if MarketPosition == -1 and IsEntryName("매도진입4") == true Then{
if CrossUp(DP,DM) Then
ExitShort();
}
if ADXV >= X Then{
if crossup(MACDV,MACDS) Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("매수진입5");
}
if CrossDown(MACDV,MACDS) Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("매도진입5");
}
}
if MarketPosition == -1 and crossup(c,mav1) Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("sb");
}
if MarketPosition == 1 and CrossDown(c,mav1) Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("bs");
}
- 1. 자동매매수식제작-22.png (0.09 MB)
답변 1
예스스탁 예스스탁 답변
2016-10-25 11:23:27
> 알러뷰 님이 쓴 글입니다.
> 제목 : 아래 수식을 수정작업좀 부탁드립니다.
> 안녕하세요 예스스탁님
50203번방에서 재수정 내용입니다.
위의 첨부파일 그림에서 보는바와 같이 아래 시스템 수식에서
검은선을 돌파/이탈시 진입이 안되구요
현재는 스위칭 기능 위주로 수식이 작성되어 있는데
이평선 돌파/이탈후에는 스위칭 기능을 없애고 매수/매도 독립신호로
진입과 청산 기능이 동작하도록 되어야 합니다.
현재 아래 수식에서는 "시스템성능보고서"에서 보는바와 같이 청산만되고
진입은 되지않아야 되는데 같은가격에 같이 진입되는 것으로 나옵니다.
결론을 서술하면 아래 수식을 이용하여 수정작업좀 부탁드립니다.
1. 주가가 검은선(27일선) 돌파/이탈시에는 스위칭 기능 수식을 사용해 주시고
2. 주가가 검은선(27일선) 돌파후에는 매수신호만 진입하고 매도신호출현일때는 청산만
주가가 검은선(27일선) 이탈후에는 매도신호만 진입하고 매수신호출현일때는 청산만
되독록 하는 아래 수식을 수정작업좀 부탁드립니다.
input : P(14),BBP(20),dv(2),MAP(60),X(15),short(12),long(26),sig(9),Period(27);
var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0);
var : MACDV(0),MACDS(0),mav1(0);
ADXV = ADX(P);
DP = Diplus(P);
DM = DiMinus(P);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
mav = ma(C,MAP);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
mav1 = ma(C,Period);
if crossup(ADXV,20) and ADXV >= X Then{
if DP > DM and dp < 25 Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("매수진입1");
}
if DP < DM and dm < 25 Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("매도진입1");
}
}
if MarketPosition == 1 and IsEntryName("매수진입1") == true Then{
if CrossDown(DP,DM) Then
ExitLong();
}
if MarketPosition == -1 and IsEntryName("매도진입1") == true Then{
if CrossUp(DP,DM) Then
ExitShort();
}
if crossup(ADXV,10) and ADXV >= X Then{
if DP > DM Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("매수진입4");
}
if DP < DM Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("매도진입4");
}
}
if MarketPosition == 1 and IsEntryName("매수진입4") == true Then{
if CrossDown(DP,DM) Then
ExitLong();
}
if MarketPosition == -1 and IsEntryName("매도진입4") == true Then{
if CrossUp(DP,DM) Then
ExitShort();
}
if ADXV >= X Then{
if crossup(MACDV,MACDS) Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("매수진입5");
}
if CrossDown(MACDV,MACDS) Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("매도진입5");
}
}
if MarketPosition == -1 and crossup(c,mav1) Then{
if MarketPosition == -1 and IsEntryName("bs") == true then
ExitShort();
Else
buy("sb");
}
if MarketPosition == 1 and CrossDown(c,mav1) Then{
if MarketPosition == 1 and IsEntryName("sb") == true then
ExitLong();
Else
sell("bs");
}