첫째, S&P500선물로 매매하려면,
S&P500선물을 기본차트로
나스닥100선물을 참조데이터로 추가하고 나에차식을 반대로 하여 적용하면 될까요?
원: 나에차 = R1-R2;
수정: 나에차 = R2-R1;
둘째, 당일손실틱수를 수정(사례에선 100을 2000으로)하려면 당일손실틱수 다음의 괄호 안 숫자를 바꿔주면 될까요? 만약 당일손실틱수가 넘어 청산됐다면 더 이상 매매가 없는 게 맞을까요?
이상을 반영하여 시스템 수식을 다음과 같이 수정하면 될까요?
input : 기준(1),일중최대진입횟수(2),당일손실틱수(2000);
var : ST(0,Data1),ET(0,Data1);
var : C1(0,Data1),C2(0,Data2);
var : R1(0,Data1),R2(0,Data2),나에차(0,Data1);
var : Tcond(False),count(0,Data1);
var : TT(0,Data1),N1(0,Data1),dayPL(0,Data1),Xcond(False),당일손실(0,Data1);
TT = TotalTrades;
if ET > 0 and Data1(sDate != sDate[1]) Then
SetStopEndofday(ET);
if data1(Bdate != Bdate[1]) Then
{
SetStopEndofday(0);
if sTime >= 80000 Then
{
ST = 233000;
ET = 060000;
}
Else
{
ST = 223000;
ET = 050000;
}
Xcond = False;
N1 = TT[1];
C1 = Data1(c[1]);
}
daypl = NetProfit-N1;
당일손실 = data1(PriceScale)*당일손실틱수;
if TotalTrades > TotalTrades[1] then
{
if daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbl",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
if Data2(Bdate != Bdate[1]) Then
C2 = Data2(c[1]);
R1 = Data1((C-C1)/C1*100);
R2 = Data2((C-C2)/C2*100);
나에차 = R2-R1;
if data1(ET > 0 and
((sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET))) Then
{
Tcond = False;
}
if data1(ST > 0 and
((sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST))) Then
{
Tcond = true;
count = 0;
if MarketPosition == 0 and 나에차 >= 기준 then
{
count = count+1;
Buy();
}
if MarketPosition == 0 and 나에차 <= 기준 Then
{
count = count+1;
Sell();
}
}
Else
{
if Tcond == true and Xcond == False Then
{
if MarketPosition == 1 and 나에차 < 0 and 나에차[1] < 0 and count < 일중최대진입횟수 Then
{
count = count+1;
Sell("bs");
}
if MarketPosition == -1 and 나에차 > 0 and 나에차[1] > 0 and count < 일중최대진입횟수 Then
{
count = count+1;
Buy("sb");
}
if MarketPosition == 1 and 나에차 < 0 and 나에차[1] < 0 and count == 일중최대진입횟수 Then
{
ExitLong("bx");
}
if MarketPosition == -1 and 나에차 > 0 and 나에차[1] > 0 and count == 일중최대진입횟수 Then
{
ExitShort("sx");
}
}
}
if MarketPosition == 1 then
{
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
다시 한번 감사드립니다.
꾸벅^^
답변 1
예스스탁
예스스탁 답변
2025-03-18 10:06:22
안녕하세요
예스스탁입니다.
예 맞습니다.
즐거운 하루되세요
> 나스닥에센피 님이 쓴 글입니다.
> 제목 : 원 글(91906) 시스템 (수정) 문의 드립니다.
> 첫째, S&P500선물로 매매하려면,
S&P500선물을 기본차트로
나스닥100선물을 참조데이터로 추가하고 나에차식을 반대로 하여 적용하면 될까요?
원: 나에차 = R1-R2;
수정: 나에차 = R2-R1;
둘째, 당일손실틱수를 수정(사례에선 100을 2000으로)하려면 당일손실틱수 다음의 괄호 안 숫자를 바꿔주면 될까요? 만약 당일손실틱수가 넘어 청산됐다면 더 이상 매매가 없는 게 맞을까요?
이상을 반영하여 시스템 수식을 다음과 같이 수정하면 될까요?
input : 기준(1),일중최대진입횟수(2),당일손실틱수(2000);
var : ST(0,Data1),ET(0,Data1);
var : C1(0,Data1),C2(0,Data2);
var : R1(0,Data1),R2(0,Data2),나에차(0,Data1);
var : Tcond(False),count(0,Data1);
var : TT(0,Data1),N1(0,Data1),dayPL(0,Data1),Xcond(False),당일손실(0,Data1);
TT = TotalTrades;
if ET > 0 and Data1(sDate != sDate[1]) Then
SetStopEndofday(ET);
if data1(Bdate != Bdate[1]) Then
{
SetStopEndofday(0);
if sTime >= 80000 Then
{
ST = 233000;
ET = 060000;
}
Else
{
ST = 223000;
ET = 050000;
}
Xcond = False;
N1 = TT[1];
C1 = Data1(c[1]);
}
daypl = NetProfit-N1;
당일손실 = data1(PriceScale)*당일손실틱수;
if TotalTrades > TotalTrades[1] then
{
if daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbl",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
if Data2(Bdate != Bdate[1]) Then
C2 = Data2(c[1]);
R1 = Data1((C-C1)/C1*100);
R2 = Data2((C-C2)/C2*100);
나에차 = R2-R1;
if data1(ET > 0 and
((sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET))) Then
{
Tcond = False;
}
if data1(ST > 0 and
((sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST))) Then
{
Tcond = true;
count = 0;
if MarketPosition == 0 and 나에차 >= 기준 then
{
count = count+1;
Buy();
}
if MarketPosition == 0 and 나에차 <= 기준 Then
{
count = count+1;
Sell();
}
}
Else
{
if Tcond == true and Xcond == False Then
{
if MarketPosition == 1 and 나에차 < 0 and 나에차[1] < 0 and count < 일중최대진입횟수 Then
{
count = count+1;
Sell("bs");
}
if MarketPosition == -1 and 나에차 > 0 and 나에차[1] > 0 and count < 일중최대진입횟수 Then
{
count = count+1;
Buy("sb");
}
if MarketPosition == 1 and 나에차 < 0 and 나에차[1] < 0 and count == 일중최대진입횟수 Then
{
ExitLong("bx");
}
if MarketPosition == -1 and 나에차 > 0 and 나에차[1] > 0 and count == 일중최대진입횟수 Then
{
ExitShort("sx");
}
}
}
if MarketPosition == 1 then
{
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
다시 한번 감사드립니다.
꾸벅^^