커뮤니티
시스템 자체의 손절?
2017-09-11 21:31:52
128
글번호 112672
수식왕 예스스탁님 매번 감사합니다.
54767번 통해 질문 한번 드렸었는데요.
1. 그럼 시스템을 멈추는 게 아니라 밑의 질문을 더 이상 진입안한다로 바꾸면 혹시 가능할까요? 예를 들어 현재의 시스템의 손실금이 N이면 진입을 제한한다. 이런 게 되는지요.
2. 가능하지 않다면 포지션 손절처럼 시스템을 '시스템적으로 중단하는 것'은 불가능하고 수동으로 손실율을 보고 시스템을 멈춰야 하나요?
3. 시스템을 직접 돌려보진 않아서 그러는데요. 그럼 손실액 이익액 수익률 이런 것이 실시간으로 나오나요?
4. 10시 이전에는 진입 불가 이런 건 어떻게 하면 되는지요.
진입
고가가 20개봉 최고가 상향돌파
청산
저가가 20개봉 최저가 하향돌파
필터
-10:30분 이전에는 진입불가
-15:00분이 되면 포지션 무조건 청산
==================================================================================
1. 수익금이 N에 도달하면 시스템을 멈춘다를 코딩할 수 있나요?
2. 손실금이 N에 도달하면 ''
3. 수익률이 N%에 도달하면 ''
4. 손실률이 N%에 도달하면 ''
답변 1
예스스탁 예스스탁 답변
2017-09-12 14:19:30
안녕하세요
예스스탁입니다.
1,2
수식에서는 시스템을 자동해제할수는 없으므로
지정한 조건이면 더이상 진입을 막는 내용으로 이해하고 답변을 드린것입니다.
사용자분이 시스템을 자동매매로 적용 이후의 손익은 수식에서는 알수 없습니다.
해당 내용으로는 수식에서 어떤 컨드롤도 되지 않습니다.
실제 시장에서 자동매매 이후에 특정 손익이 발생하면 중지하고 하시면
직접 계산후에 차트에서 해제해야 합니다.
수식은 차트에 적용하면 차트의 데이터로 계산해서 신호를 발생하게 되고
차트상 신호에 의한 손익만 알수 있습니다.
다만 차트 전체손익으로 하신다고 해도 해당 내용은 큰 의미가 없습니다.
전략을 실제 가동할수 있는 전략실행차트는 최대 1만개봉만 조회가 됩니다.
날마다 차트에 표본데이터가 변경되게 되어 손익이 항상바뀌게 되어
해당 내용으로 제어는 의미가 없습니다.
만약 문의하신 내용이 당일 지정한 손익발생시 이면
게시판 검색하시면 해당 내용에 대해서는 많은 수식이 답변에 이미 있습니다.
기본식구조는 아래와 같습니다.
Input : 당일수익틱수(80),당일손실틱수(80);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if Bdate != Bdate[1] Then{
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 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));
}
if (sdate != sdate[1] and stime >= 020000) or
(sdate == sdate[1] and stime > 020000 and stime[1] < 020000) Then{
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
3
위 답변과 같이 시스템 성능보고서에는 손익이 표시됩니다.
차트의 신호에 의한 손익입니다.
실제 주문내서 체결된 가격에 의한 리포트는 없습니다.
4
if stime >= 100000 then{
if crossup(c,highest(H,20)[1]) Then
buy();
if CrossDown(c,Lowest(l,20)[1]) Then
ExitLong();
}
SetStopEndofday(150000);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 시스템 자체의 손절?
> 수식왕 예스스탁님 매번 감사합니다.
54767번 통해 질문 한번 드렸었는데요.
1. 그럼 시스템을 멈추는 게 아니라 밑의 질문을 더 이상 진입안한다로 바꾸면 혹시 가능할까요? 예를 들어 현재의 시스템의 손실금이 N이면 진입을 제한한다. 이런 게 되는지요.
2. 가능하지 않다면 포지션 손절처럼 시스템을 '시스템적으로 중단하는 것'은 불가능하고 수동으로 손실율을 보고 시스템을 멈춰야 하나요?
3. 시스템을 직접 돌려보진 않아서 그러는데요. 그럼 손실액 이익액 수익률 이런 것이 실시간으로 나오나요?
4. 10시 이전에는 진입 불가 이런 건 어떻게 하면 되는지요.
진입
고가가 20개봉 최고가 상향돌파
청산
저가가 20개봉 최저가 하향돌파
필터
-10:30분 이전에는 진입불가
-15:00분이 되면 포지션 무조건 청산
==================================================================================
1. 수익금이 N에 도달하면 시스템을 멈춘다를 코딩할 수 있나요?
2. 손실금이 N에 도달하면 ''
3. 수익률이 N%에 도달하면 ''
4. 손실률이 N%에 도달하면 ''