안녕하세요~
아래 수식은
종목은 항셍이며 오전 10시 15분 부터 익일 4시까지 진입하며
당일 누적 수익이 100틱이 되면 진입 금지가 되는 수식입니다.
수식에서 한 가지가 생각대로 되지 않아 수정 부탁드립니다.
새벽 4시, 장이 마감될 때까지도 진입된 포지션이 있다면
다시말해 청산되지 않는 포지션이 남아있다면
다음날 오전 10시 15분, 장이 시작될 때 잔여 포지션이 무조건 청산 되는 문제가 있습니다.
날이 바뀌어 다음날 10시 15분, 장이 시작해도 전날 진입한 포지션이 무조건 청산되지 않게 수정 부탁드립니다.
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
input : StartTime(101500),EndTime(040000);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
var : Tcond(false);
if sdate != sDate[1] Then
SetStopEndofday(Endtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
SetStopEndofday(0);
Tcond = true;
}
Input : 당일수익틱수(100);
당일수익 = PriceScale*당일수익틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
}
if Xcond == false and Tcond == true then
{
if CrossUP(value1, value2) Then Buy("W_B");
if CrossDown(value1, value2) Then Sell("W_S");
}
Input:ProfitTarget(50),StopLoss(0);
SetStopProfitTarget(ProfitTarget*PriceScale,PointStop);
SetStopLoss(StopLoss*PriceScale,PointStop);
답변 1
예스스탁
예스스탁 답변
2023-03-13 19:12:34
안녕하세요
예스스탁입니다.
현재 수식에 SetStopEndofday로 당일청산하는 내용이 있습니다.
4시 이후 첫틱이 들어오면 청산하게 됩니다.
올려주신 내용이면 04시에 청산하는 내용을 제거하셔야 합니다.
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
input : StartTime(101500),EndTime(040000);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
var : Tcond(false);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
}
Input : 당일수익틱수(100);
당일수익 = PriceScale*당일수익틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
}
if Xcond == false and Tcond == true then
{
if CrossUP(value1, value2) Then Buy("W_B");
if CrossDown(value1, value2) Then Sell("W_S");
}
Input:ProfitTarget(50),StopLoss(0);
SetStopProfitTarget(ProfitTarget*PriceScale,PointStop);
SetStopLoss(StopLoss*PriceScale,PointStop);
즐거운 하루되세요
> 방국봉 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요~
아래 수식은
종목은 항셍이며 오전 10시 15분 부터 익일 4시까지 진입하며
당일 누적 수익이 100틱이 되면 진입 금지가 되는 수식입니다.
수식에서 한 가지가 생각대로 되지 않아 수정 부탁드립니다.
새벽 4시, 장이 마감될 때까지도 진입된 포지션이 있다면
다시말해 청산되지 않는 포지션이 남아있다면
다음날 오전 10시 15분, 장이 시작될 때 잔여 포지션이 무조건 청산 되는 문제가 있습니다.
날이 바뀌어 다음날 10시 15분, 장이 시작해도 전날 진입한 포지션이 무조건 청산되지 않게 수정 부탁드립니다.
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
input : StartTime(101500),EndTime(040000);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
var : Tcond(false);
if sdate != sDate[1] Then
SetStopEndofday(Endtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
SetStopEndofday(0);
Tcond = true;
}
Input : 당일수익틱수(100);
당일수익 = PriceScale*당일수익틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
}
if Xcond == false and Tcond == true then
{
if CrossUP(value1, value2) Then Buy("W_B");
if CrossDown(value1, value2) Then Sell("W_S");
}
Input:ProfitTarget(50),StopLoss(0);
SetStopProfitTarget(ProfitTarget*PriceScale,PointStop);
SetStopLoss(StopLoss*PriceScale,PointStop);