예스스탁
예스스탁 답변
2022-01-25 09:22:21
안녕하세요
예스스탁입니다.
input : StartTime(80000),EndTime(065000);
input : P(2000),n(2);
input : 익절틱수(800),당일누적수익틱수(80),횟수(20);
var : Tcond(false),N1(0),dayPl(0),당일수익(0),Xcond(false),Xcount(0);
당일수익 = PriceScale*당일누적수익틱수;
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
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
Xcount = 0;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) Then
{
Xcond = true;
Xcount = Xcount+1; #추가
N1 = NetProfit;
}
}
var1 = ma(C,P);
if Tcond == true and Xcount < 횟수 Then#수정
{
if MarketPosition == 0 and (CrossUp(c,var1) or CrossDown(c,var1)) Then
{
value1 = H;
Value2 = L;
Buy("b",OnClose,DEF,1);
}
if MarketPosition == 1 Then
{
if C < Value2 Then
{
Value2 = C;
Sell("bs",OnClose,DEF,CurrentContracts+n);
}
}
if MarketPosition == -1 Then
{
if C > Value1 Then
{
Value1 = C;
Buy("sb",OnClose,DEF,CurrentContracts+n);
}
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
즐거운 하루되세요
> 아침 님이 쓴 글입니다.
> 제목 : 재문의 드립니다.
> input : StartTime(80000),EndTime(065000);
input : P(2000),n(2);
input : 익절틱수(800),당일누적수익틱수(80),횟수(20);
var : Tcond(false),N1(0),dayPl(0),당일수익(0),Xcond(false),Xcount(0);
당일수익 = PriceScale*당일누적수익틱수;
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
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
{
Xcond = true;
Xcount = Xcount+1; #추가
}
}
var1 = ma(C,P);
if Tcond == true and Xcount < 횟수 Then#수정
{
if MarketPosition == 0 and (CrossUp(c,var1) or CrossDown(c,var1)) Then
{
value1 = H;
Value2 = L;
Buy("b",OnClose,DEF,1);
}
if MarketPosition == 1 Then
{
if C < Value2 Then
{
Value2 = C;
Sell("bs",OnClose,DEF,CurrentContracts+n);
}
}
if MarketPosition == -1 Then
{
if C > Value1 Then
{
Value1 = C;
Buy("sb",OnClose,DEF,CurrentContracts+n);
}
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
지금 위의 수식은
첫번째 누적수익이 만약에 80틱이였다면 두번째 누적수익도 첫번째와 상관없이 80틱이여야 하는데 그렇게 안되네요.
매 횟수될 때 마다 누적수익이 만족 되어야 합니다.
쉽게 말해서 첫번째 누적수익. 첫번째하고 상관없이 두번째 누적수익....
이런식으로 계속 횟수 만큼 거래하면 됩니다.
그리고 당일 횟수만 거래 하고 다음날 부터는 거래가 없더라구요.
매일 매일 횟수만큼 거래되게 해 주세요.
어떨게 글로 설명이 되었나 모르겠네요.
부탁합니다.
그럼 수고하세요.