예스스탁
예스스탁 답변
2023-07-31 10:15:01
안녕하세요
예스스탁입니다.
Input : 당일수익틱수(750),최소수익틱수(600),수익감소틱수(100);
input : StartTime(90000),EndTime(230000);
Var : N1(0),dayPl(0),당일수익(0),최소수익(0),수익감소(0),Xcond(false);
var : Tcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
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
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
Tcond = true;
}
당일수익 = PriceScale*당일수익틱수;
최소수익 = PriceScale*최소수익틱수;
수익감소 = PriceScale*수익감소틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbtr",1) == true or
IsExitName("dsp",1) == true or IsExitName("dstr",1) == true) then
Xcond = true;
}
if Xcond == false and Tcond == true then
{
//진입청산수식
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
if daypl+MaxPositionProfit >= 최소수익 Then
ExitLong("dbtr",AtStop,highest(H,BarsSinceEntry)-(수익감소/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
if daypl+MaxPositionProfit >= 최소수익 Then
ExitShort("dstr",AtStop,lowest(L,BarsSinceEntry)+(수익감소/CurrentContracts));
}
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 수고하십니다.
청산식을 추가하고자 합니다.
커뮤니티 게시판에 공개되어있는 9시 시작, 23시 종료 시간수식을 사용중입니다.
3계약 분할진입, 일괄청산 시스템매매에서
1. 21시까지 당일 누적수익이 총 750틱이 넘으면 현재 수익중이라도 당일 매매가 즉시 종료되는 수식.
2. 당일 누적수익이 총 600틱이 넘으면 이후 수익이 100틱 줄어 500틱으로 줄어들면 당일매매가 즉시 종료되는 수식. (이때 600틱이상 수익이 발생하고 신호가 종료된후 이후 나온 신호에서 평가손이 100틱이상 발생하면 즉시 종료되는 식도 좋습니다)
노고에 미리 감사드립니다~