답변완료
68754 질문
저의 원래 수식에서 빠진게 있었네요..손절되지 않으면, 마지막에 다음봉시가청산.
이렇게 해도 답변은 똑같으신 건지요?
아래 조건 추가했을 경우로 수정 부탁드립니다..
감사합니다.
----------------------------------------------------------------
시간설정
.
.
.
buy("b",AtStop,H);
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
ExitShort("sx",AtStop,NextBarOpen);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,EntryPrice+(H-L)*0.5);
if MarketPosition == 1 Then
ExitLong("bx2",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx2",AtMarket);
-------------------------------------------------------------
안녕하세요
예스스탁입니다.
buy("b",AtStop,H);
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
ExitShort("sx",AtStop,NextBarOpen);
위 내용은 진입 후 시가에서 청산하는 부분인데
진입가가 시가보다 크면 진입과 청산이 동시에 발생합니다.
위 내용의 경우 진입봉이 완성되고 다음봉 시가에 청산되게 하셔야 합니다.
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,EntryPrice+(H-L)*0.5);
위 내용도 EntryPrice 진입후 봉이 완성되어야 값이 변경이 됩니다.
봉미완성시에 변경되는 값이 아니므로 진입과 동시에 셋팅되어 청산되는 식과
진입후 첫봉이 완성되고 청산하는 내용으로 청산식 2개를 사용하셔야 합니다.
아래는 수정한 식입니다.
buy("b",AtStop,H); if MarketPosition == -1 Then
ExitShort("sx",AtStop,NextBarOpen);
if MarketPosition == 1 Then
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
if MarketPosition <= 0 Then
ExitLong("bx1",AtStop,(NextBarOpen+(H-L)*0.5)-(H-L)*0.5);
Else
ExitLong("bx2",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
if MarketPosition >= 0 Then
ExitShort("sx1",AtStop,(NextBarOpen-(H-L)*0.5)+(H-L)*0.5);
Else
ExitShort("sx2",AtStop,EntryPrice+(H-L)*0.5);
즐거운 하루되세요
> 군고구마 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 노고에 감사드립니다.
아래 식에서 's'로 매도진입하자마자 동시에 같은가격에 바로 'sx1'으로 매도청산됩니다.
진입후, 시가 또는 진입가의 전봉레인지*0.5 변동시 청산하게 만든건데, 뭔가 잘못한거 같습니다. buy("b",AtStop,H);
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
ExitShort("sx",AtStop,NextBarOpen);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,EntryPrice+(H-L)*0.5);
도움 부탁드립니다.
2020-08-13
1156
글번호 141483
시스템
답변완료
특정전략의 PositionProfit 문의
안녕하세요.
항상 도와주셔서 정말 많은 도움을 받고있습니다.
다름이아니라, 한개의 시스템에 2개의 진입전략을 가지고 운용하고 있습니다.
그중 A전략을 사용하여 손실이 날 경우 다음 전략에서 2배를 매수하는 전략을 아래 수식으로 구현하였습니다.
문제는 이 경우 A전략에서 손실이 난 이후 B전략에서 수익이 나면, 다음 A전략에서 2배를 매수하지 않는 문제가 있습니다.(바로전 B전략에 수익이 났으므로)
(A전략손실(50만원) -> B전략수익(100만원) -> A전략진입(50만원: 100만원 진입해야하나 50만 진입))
혹시 Positionprofit을 매수전략을 구분하여 사용할 수 있을까요?
이해를 돕기 위해 사용중인 전략아래와 같이 발췌하였습니다.
#마틴게일
#이전 거래에서 손실 시 2배 배팅을 위한 로직
var : MT(0);
MT = 1;
if positionprofit(1) <0 then
MT = 2;
#매수 조건
# 1. A전략: 이전 A전략이 손실을 봤을 시 2배 금액 진입
if stime > 093000
and crossup(ma(C,period),value1)
and CsumScore >= Cscore then
buy("A전략",Atmarket,DEF,floor((Deposit-entryprice*CurrentContracts)/2*MT/C));
#3. B전략: 동일 금액 진입
if stime > 093000
and crossup(ma(C,period),value3)
and BsumScore >= BScore then
buy("B전략",Atmarket,DEF,floor((Deposit-entryprice*CurrentContracts)/C));
2020-08-13
1317
글번호 141481
시스템
답변완료
부탁좀 드리겠습니다.
Input:기간(10),종가사용여부(0);
Var:TL1(0),신규구분(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = HiLoLineZigZag(기간, 종가사용여부, 고, 저, 신규구분);
If Value1 == 1 Then { // 고점
If 신규구분 == 1 Then // 신규
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
Else If 신규구분 == 2 Then // 연장
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
} Else If Value1 == -1 Then { // 저점
If 신규구분 == 1 Then // 신규
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
Else If 신규구분 == 2 Then // 연장
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
TL_SetSize(TL1,1);
시스템식으로 변환좀 부탁드립니다
2020-08-13
1081
글번호 141467
지표
답변완료
문의 드립니다.
노고에 감사드립니다.
아래 식에서 's'로 매도진입하자마자 동시에 같은가격에 바로 'sx1'으로 매도청산됩니다.
진입후, 시가 또는 진입가의 전봉레인지*0.5 변동시 청산하게 만든건데, 뭔가 잘못한거 같습니다.
도움 부탁드립니다.
buy("b",AtStop,H);
ExitLong("bx",AtStop,NextBarOpen);
sell("s",AtStop,L);
ExitShort("sx",AtStop,NextBarOpen);
buy("b1",AtStop,NextBarOpen+(H-L)*0.5);
ExitLong("bx1",AtStop,EntryPrice-(H-L)*0.5);
sell("s1",AtStop,NextBarOpen-(H-L)*0.5);
ExitShort("sx1",AtStop,EntryPrice+(H-L)*0.5);
2020-08-12
1360
글번호 141454
시스템