예스스탁
예스스탁 답변
2022-03-31 14:49:36
input : StartTime(90000),EndTime(110000);
Input : 당일수익틱수(25),당일손실틱수(50);
Input : 전환선기간(9), 기준선기간(26);
Var : 기준선(0), 전환선(0);
var : Tcond(false);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
전환선 = (Highest(High, 전환선기간) + Lowest(Low, 전환선기간)) / 2;
기준선 = (Highest(High, 기준선기간) + Lowest(Low, 기준선기간)) / 2;
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
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;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
if Tcond == true and Xcond == true Then
{
if MarketPosition <= 0 and crossup(전환선,기준선) Then
Buy();
if MarketPosition >= 0 and CrossDown(전환선,기준선) Then
Sell();
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
SetStopEndofday(Endtime);
> 수원 님이 쓴 글입니다.
> 제목 : 아래식에서
>
당일총수익이나 총손실에도달하면 강제청산후에 매수진입이나 매도진입이되지않도록 수정부탁합니다
당일 수이이나 손실이 나도 계속진입이됩니다
input : StartTime(90000),EndTime(110000);
Input : 당일수익틱수(25),당일손실틱수(50);
Input : 전환선기간(9), 기준선기간(26);
Var : 기준선(0), 전환선(0);
var : Tcond(false);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
전환선 = (Highest(High, 전환선기간) + Lowest(Low, 전환선기간)) / 2;
기준선 = (Highest(High, 기준선기간) + Lowest(Low, 기준선기간)) / 2;
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
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;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
if Tcond == true Then
{
if MarketPosition <= 0 and crossup(전환선,기준선) Then
Buy();
if MarketPosition >= 0 and CrossDown(전환선,기준선) Then
Sell();
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
SetStopEndofday(Endtime);