예스스탁
예스스탁 답변
2023-03-20 13:54:59
안녕하세요
예스스탁입니다.
1
input : 분1(15),분2(30),분3(60),분4(240);
input : short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0);
var : macdv(0),macds(0);
var : TF1(0),i1(0),xma11(0),xma12(0),Prexma11(0),Prexma12(0),MACDV1(0),MACDS1(0),PreMACDS1(0);
var : TF2(0),i2(0),xma21(0),xma22(0),Prexma21(0),Prexma22(0),MACDV2(0),MACDS2(0),PreMACDS2(0);
var : TF3(0),i3(0),xma31(0),xma32(0),Prexma31(0),Prexma32(0),MACDV3(0),MACDS3(0),PreMACDS3(0);
var : TF4(0),i4(0),xma41(0),xma42(0),Prexma41(0),Prexma42(0),MACDV4(0),MACDS4(0),PreMACDS4(0);
macdv = macd(short,long);
macds = Ema(macdv,sig);
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%분1;
TF2 = TM%분2;
TF3 = TM%분3;
TF4 = TM%분4;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and 분1 > 1 and TM >= TM[1]+분1) or
(Bdate == Bdate[1] and 분1 == 1 and TM > TM[1]) Then
{
i1 = i1 + 1;
Prexma11 = xma11[1];
Prexma12 = xma12[1];
PreMACDS1 = MACDS1[1];
}
if i1 <= 1 then
{
xma11 = C;
xma12 = C;
MACDV1 = xma11-xma12;
MACDS1 = MACDV1;
}
else{
xma11 = C * EP1 + Prexma11 * (1-EP1);
xma12 = C * EP2 + Prexma12 * (1-EP2);
MACDV1 = xma11-xma12;
MACDS1 = MACDV1 * EP3 + PreMACDS1 * (1-EP3);
}
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and 분2 > 1 and TM >= TM[1]+분2) or
(Bdate == Bdate[1] and 분2 == 1 and TM > TM[1]) Then
{
i2 = i2 + 1;
Prexma21 = xma11[1];
Prexma22 = xma12[1];
PreMACDS2 = MACDS2[1];
}
if i1 <= 1 then
{
xma21 = C;
xma22 = C;
MACDV2 = xma21-xma22;
MACDS2 = MACDV2;
}
else{
xma21 = C * EP1 + Prexma21 * (1-EP1);
xma22 = C * EP2 + Prexma22 * (1-EP2);
MACDV2 = xma21-xma22;
MACDS2 = MACDV2 * EP3 + PreMACDS2 * (1-EP3);
}
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분3 > 1 and TF3 < TF3[1]) or
(Bdate == Bdate[1] and 분3 > 1 and TM >= TM[1]+분3) or
(Bdate == Bdate[1] and 분3 == 1 and TM > TM[1]) Then
{
i3 = i3 + 1;
Prexma31 = xma31[1];
Prexma32 = xma32[1];
PreMACDS3 = MACDS3[1];
}
if i3 <= 1 then
{
xma31 = C;
xma32 = C;
MACDV3 = xma31-xma32;
MACDS3 = MACDV3;
}
else{
xma31 = C * EP1 + Prexma31 * (1-EP1);
xma32 = C * EP2 + Prexma32 * (1-EP2);
MACDV3 = xma31-xma32;
MACDS3 = MACDV3 * EP3 + PreMACDS3 * (1-EP3);
}
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분4 > 1 and TF4 < TF4[1]) or
(Bdate == Bdate[1] and 분4 > 1 and TM >= TM[1]+분4) or
(Bdate == Bdate[1] and 분4 == 1 and TM > TM[1]) Then
{
i4 = i4 + 1;
Prexma41 = xma41[1];
Prexma42 = xma42[1];
PreMACDS4 = MACDS4[1];
}
if i4 <= 1 then
{
xma41 = C;
xma42 = C;
MACDV4 = xma41-xma42;
MACDS4 = MACDV4;
}
else{
xma41 = C * EP1 + Prexma41 * (1-EP1);
xma42 = C * EP2 + Prexma42 * (1-EP2);
MACDV4 = xma41-xma42;
MACDS4 = MACDV4 * EP3 + PreMACDS4 * (1-EP3);
}
if macdv > 0 and macdv > macds and
macdv1 > 0 and macdv1 > macds1 and
macdv2 > 0 and macdv2 > macds2 and
macdv3 > 0 and macdv3 > macds3 and
macdv4 > 0 and macdv4 > macds4 Then
Buy();
}
2
if MarketPosition == 1 Then
{
if CurrentEntries >= 20 Then
{
if PositionProfit(0) >= PriceScale*100 Then
ExitLong();
if PositionProfit(0) <= -PriceScale*100 Then
ExitLong();
}
}
3
var : dd(0),ed(0);
if bdate != Bdate[1] Then
dd = dd+1;
if MarketPosition == 1 Then
{
if MarketPosition[1] != 1 Then
ed = dd;
if dd == ed+2 and sTime >= EntryTime Then
{
ExitLong();
}
}
즐거운 하루되세요
> 양치기 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다.
> 항상 도움 주셔서 감사합니다.
종목 : 해외선물
차트 : 5분봉
1.
매수 : 5분봉 MACD가 0선위, 시그널선 위
15분봉 MACD가 0선위, 시그널선 위
30분봉 MACD가 0선위, 시그널선 위
60분봉 MACD가 0선위, 시그널선 위
240분봉 MACD가 0선위, 시그널선 위
위조건 만족시 매수 진입하는 시스템식 부탁드립니다.
2.
매수 진입횟수를 20번까지 가능한 경우
매수가 20번까지 모두 진입한 이후
총합의 손실이 100틱이 이상이거나
또는 총합의 이익이 100틱 이상이면
일괄 청산하는 시스템식 부탁드립니다.
3.
매수 진입횟수를 20번까지 가능한 경우
매수가 20번까지 모두 진입한 이후
3일(720분이) 경과한 후 손익과 상관없이
모두 청산하는 시스템식 부탁드립니다.
감사합니다.