커뮤니티
수식문의드립니다
2018-09-20 11:11:02
149
글번호 122174
수정해주셔서 그부분은 해결되었는데 당일 챠트에서는 안먹히고 시장종료때까지 유지되더라고요 그전날까지는 잘 먹히다가 왜 당일차트에는 매수매도조건식이 갑자기 안먹힐까요? 제가 장중손실부분이 문제인거 같아서 값을 수정해서 넣어봤는데 되었다 안되었다 합니다 장중손실수식이 매수매도조건식에 영향을 줄수있는건가요? 한번 봐주세요
if daypl <= -PriceScale*10 Then
Condition1 = true
수정해주신거
input : 시작시간(90000),종료시간(30000);
Input : 당일누적수익틱수(20),당일누적손실틱수(15);
Var : N1(0),dayPl(0),당일누적수익(0),당일누적손실(0),Xcond(false),Tcond(false);
당일누적수익 = PriceScale*당일누적수익틱수;
당일누적손실 = PriceScale*당일누적손실틱수;
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
if Xcond == false and Tcond == true then
{
if /*매수진입조건*/ Then
{
buy("b");
}
if /*매도진입조건*/ Then
{
sell("s");
}
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));
}
}
2
input : 시작시간(90000),종료시간(30000);
Input : 당일누적수익틱수1(20),당일누적수익틱수2(10),당일누적손실틱수(80);
Var : N1(0),dayPl(0),당일누적수익1(0),당일누적수익2(0),당일누적손실(0),Xcond(false),Tcond(false);
당일누적수익1 = PriceScale*당일누적수익틱수1;
당일누적수익2 = PriceScale*당일누적수익틱수2;
당일누적손실 = PriceScale*당일누적손실틱수;
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
Condition1 = false;
}
daypl = NetProfit-N1;
if daypl <= -PriceScale*10 Then
Condition1 = true;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp1",1) == true or
IsExitName("dbp2",1) == true or
IsExitName("dbl",1) == true or
IsExitName("dsp1",1) == true or
IsExitName("dsp1",2) == true or
IsExitName("dsl",1) == true) then
Xcond = true;
if Xcond == false and Tcond == true then
{
if /*매수진입조건*/ crossup(C,ma(C,20)) Then
{
buy("b");
}
if /*매도진입조건*/ CrossDown(C,ma(C,20)) Then
{
sell("s");
}
if MarketPosition == 1 then
{
if Condition1 == false then
ExitLong("dbp1",atlimit,EntryPrice+((당일누적수익1-daypl)/CurrentContracts));
Else
ExitLong("dbp2",atlimit,EntryPrice+((당일누적수익2-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일누적손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
if Condition1 == false then
ExitShort("dsp1",atlimit,EntryPrice-((당일누적수익1-daypl)/CurrentContracts));
Else
ExitShort("dsp2",atlimit,EntryPrice-((당일누적수익2-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts));
}
}
답변 1
예스스탁 예스스탁 답변
2018-09-20 11:19:32
안녕하세요
예스스탁입니다.
해당 부분은 저희가 수식의 내용을 수정해 드릴부분이 없습니다.
당일누적수익,당일누적손실을 계산해서 청산을 하게 되는데
지정한 시간내 해당 내용으로 청산이 되지 않으면
포지션은 다음날로 넘어가고 다음날은 다시 시작시간을 기준으로
당일손익과 변수가 초기화가 됩니다.
그래서 이전 답변에 지정한 종료시간에 청산하는 내용에 대해 추가로 내용을 드린것입니다.
위와 같은 경우에 청산을 어떤 방식으로 할지 정해서 내용을 추가하셔야 합니다.
즐거운 하루되세요
> toal 님이 쓴 글입니다.
> 제목 : 수식문의드립니다
> 수정해주셔서 그부분은 해결되었는데 당일 챠트에서는 안먹히고 시장종료때까지 유지되더라고요 그전날까지는 잘 먹히다가 왜 당일차트에는 매수매도조건식이 갑자기 안먹힐까요? 제가 장중손실부분이 문제인거 같아서 값을 수정해서 넣어봤는데 되었다 안되었다 합니다 장중손실수식이 매수매도조건식에 영향을 줄수있는건가요? 한번 봐주세요
if daypl <= -PriceScale*10 Then
Condition1 = true
수정해주신거
input : 시작시간(90000),종료시간(30000);
Input : 당일누적수익틱수(20),당일누적손실틱수(15);
Var : N1(0),dayPl(0),당일누적수익(0),당일누적손실(0),Xcond(false),Tcond(false);
당일누적수익 = PriceScale*당일누적수익틱수;
당일누적손실 = PriceScale*당일누적손실틱수;
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
if Xcond == false and Tcond == true then
{
if /*매수진입조건*/ Then
{
buy("b");
}
if /*매도진입조건*/ Then
{
sell("s");
}
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));
}
}
2
input : 시작시간(90000),종료시간(30000);
Input : 당일누적수익틱수1(20),당일누적수익틱수2(10),당일누적손실틱수(80);
Var : N1(0),dayPl(0),당일누적수익1(0),당일누적수익2(0),당일누적손실(0),Xcond(false),Tcond(false);
당일누적수익1 = PriceScale*당일누적수익틱수1;
당일누적수익2 = PriceScale*당일누적수익틱수2;
당일누적손실 = PriceScale*당일누적손실틱수;
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
Condition1 = false;
}
daypl = NetProfit-N1;
if daypl <= -PriceScale*10 Then
Condition1 = true;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp1",1) == true or
IsExitName("dbp2",1) == true or
IsExitName("dbl",1) == true or
IsExitName("dsp1",1) == true or
IsExitName("dsp1",2) == true or
IsExitName("dsl",1) == true) then
Xcond = true;
if Xcond == false and Tcond == true then
{
if /*매수진입조건*/ crossup(C,ma(C,20)) Then
{
buy("b");
}
if /*매도진입조건*/ CrossDown(C,ma(C,20)) Then
{
sell("s");
}
if MarketPosition == 1 then
{
if Condition1 == false then
ExitLong("dbp1",atlimit,EntryPrice+((당일누적수익1-daypl)/CurrentContracts));
Else
ExitLong("dbp2",atlimit,EntryPrice+((당일누적수익2-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일누적손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
if Condition1 == false then
ExitShort("dsp1",atlimit,EntryPrice-((당일누적수익1-daypl)/CurrentContracts));
Else
ExitShort("dsp2",atlimit,EntryPrice-((당일누적수익2-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts));
}
}
이전글