커뮤니티
문의드립니다.
2013-11-27 19:10:56
121
글번호 69849
아래 시스템을 단순스토캐스틱과 지수스토캐스틱 2가지 경우로 부탁드립니다.
스토캐스틱10분봉 K가 D를 상향 돌파시 매수
(단, 스토캐스틱 30분봉 K > D 상태일때)
*매수청산
1)10분봉 스토캐스틱 K 가 D를 하향 돌파시 청산
2)1포인트 수익시 청산
스토캐스틱10분봉 K가 D를 하향 돌파시 매수
(단, 스토캐스틱 30분봉 K < D 상태일때)
*매도청산
1)10분봉 스토캐스틱 K 가 D를 상향 돌파시 매도 청산
2)포인트 수익시 청산
답변 1
예스스탁 예스스탁 답변
2013-11-27 20:43:08
안녕하세요
예스스탁입니다.
1.
input : Atime(30),StoPeriod(10), StoPeriod1(6), StoPeriod2(6);
var : count(0), highVal(0), lowVal(0), StoFastK(0), StoK(0), StoD(0);
var : Ep(0), EP1(0), JISU(0), DINDEX(0), PreStoK(0), PreStoD(0),cnt(0);
var : SK(0),SD(0);
Array : HH[50](0),LL[50](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
highVal = HH[0];
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (C-lowVal)/(highVal-lowVal)*100;
#### Slow StochasticsK ####
Ep = 2/(StoPeriod1+1);
if DINDEX >= StoPeriod and (date != date[1] or var1 < var1[1]) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
#### Slow StochasticsD ####
Ep1 = 2/(StoPeriod2+1);
if date != date[1] or var1 < var1[1] then {
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1);
SK = StochasticsK(StoPeriod,StoPeriod1);
SD = StochasticsD(StoPeriod,StoPeriod1,StoPeriod2);
if crossup(SK,SD) and stok > stod Then
buy();
if MarketPosition == 1 and CrossDown(sk,sd) Then
exitlong();
if CrossDown(SK,SD) and stok < stod Then
sell();
if MarketPosition == -1 and CrossUp(sk,sd) Then
ExitShort();
SetStopProfittarget(1,PointStop);
2.
input : Atime(30),StoPeriod(10), StoPeriod1(6), StoPeriod2(6);
var : cnt(0),count(0),highVal(0), lowVal(0),Stok(0),StoD(0);
var : sum1(0),sum2(0);
var : stof10(0),stok10(0),stod10(0);
Array : HH[50](0),LL[50](0),FK[50](0),SK[50](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
FK[cnt] = FK[cnt-1][1];
SK[cnt] = SK[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[StoPeriod] > 0 Then{
highVal = HH[0];
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
if LL[count] < lowVal then
lowVal = LL[count];
}
FK[0] = (C-lowVal)/(highVal-lowVal)*100;
}
if FK[StoPeriod1] > 0 Then{
sum1 = 0;
for cnt = 0 to StoPeriod1-1 {
sum1 = sum1+FK[cnt];
}
SK[0] = sum1/StoPeriod1;
Stok = Sk[0];
}
if StoK[StoPeriod2] > 0 Then{
sum2 = 0;
for cnt = 0 to StoPeriod2-1 {
sum2 = sum2+SK[cnt];
}
StoD = sum2/StoPeriod1;
}
stof10 = FastK(StoPeriod);
StoK10 = ma(stof10,StoPeriod1);
StoD10 = ma(stok10,StoPeriod2);
if crossup(StoK10,StoD10) and stok > stod Then
buy();
if MarketPosition == 1 and CrossDown(StoK10,StoD10) Then
exitlong();
if CrossDown(StoK10,StoD10) and stok < stod Then
sell();
if MarketPosition == -1 and CrossUp(StoK10,StoD10) Then
ExitShort();
SetStopProfittarget(1,PointStop);
즐거운 하루되세요
> 비류천 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 아래 시스템을 단순스토캐스틱과 지수스토캐스틱 2가지 경우로 부탁드립니다.
스토캐스틱10분봉 K가 D를 상향 돌파시 매수
(단, 스토캐스틱 30분봉 K > D 상태일때)
*매수청산
1)10분봉 스토캐스틱 K 가 D를 하향 돌파시 청산
2)1포인트 수익시 청산
스토캐스틱10분봉 K가 D를 하향 돌파시 매수
(단, 스토캐스틱 30분봉 K < D 상태일때)
*매도청산
1)10분봉 스토캐스틱 K 가 D를 상향 돌파시 매도 청산
2)포인트 수익시 청산
다음글
이전글