답변완료
청산 Slippage 줄이기 위한 방법문의
시뮬레이션상은, 청산완료 라고 되는데, 실거래는 매도가 다끝나지 않는 경우가 발생하네요.
이유야, 매수시 체결수량의 차이등 여러가지 겠
Q. 3번째 분할매도시, 계좌에 있는 종목 보유 주식을
'수량에 상관없이' 모두 청산하는 조건으로 수정하려면
어떻게 할까요?
-----인용
{ BXcond = true; ii = 0; Bxcnt = 0; }
if BXcond == true then
{
if ii%n == 0 then
{
Bxcnt = Bxcnt+1;
if Bxcnt == 1 Then // 1봉째 분할매도
ExitLong("bx1",OnClose,def,"",Floor(MaxContracts/3),1);
if Bxcnt == 2 Then // 조건만족 2봉째 분할매도
ExitLong("bx2",OnClose,def,"",Floor(MaxContracts/3),1);
if Bxcnt == 3 Then // 조건만족 3봉째 분할매도
ExitLong("bx3");
} ii = ii+1; } }
2020-05-29
2617
글번호 139334
시스템
답변완료
67696 질문의 매도진입 버전요망합니다.
var : T(0),BuyEntry(false),ii(0);
var1 = ma(C,5);
var2 = ma(C,10);
if var1 > var1[1] Then
T = 1;
if var1 < var1[1] Then
T = -1;
#상향반전
if T == 1 and T != T[1] Then
{
BuyEntry = true;
ii = index;
}
#상향반전후 10봉 이내
if BuyEntry == true and index < ii+10 Then
{
if NextBarOpen <= var2 Then
buy("b1",AtStop,var2);
Else
buy("b2",Atlimit,var2);
}
이수식의 매도진입 버전을 하려고 아래 수식으로 해봤는데 원하는
매매가 안되는데요... 매도진입버전 수정체크부탁드려요~~~
* 원하는 수식
매도 진입
(1) 5봉이평 우하향 (10봉이내에만 진입)
(2) 5봉이평 우햐향 조건에서 2일 이평 터치시 매도진입
매도 청산
(1) tr도달시 tr하락할때 청산 또는 터치익절(익절실현) 터치 손절(손절실현)
* 5봉이평이 유지되는 상태에서 1회 진입 청산시 재진입하지 않기
input : tr수익(250),tr하락(200);
input : 터치익절(375),즉시손절(100);
var : T(0),SellEntry(0),ii(0);
var1 = ma(C,5);
var2 = ma(C,2);
if var1 > var1[1] Then
T = 1;
if var1 < var1[1] Then
T = -1;
#상향반전 요기만 "T== -1"로 바꾸면 되나요?
if T == -1 and T != T[1] Then
{
SellEntry = true;
ii = index;
}
#상향반전후 10봉 이내
if SellEntry == true and index < ii+10 Then
{
if NextBarOpen > var2 Then
sell("b1",AtStop,var2);
Else
sell("b2",Atlimit,var2);
}
if MarketPosition == -1 then
{
Sellentry = false;
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*tr수익 Then
ExitShort("str",AtStop, Lowest(L,BarsSinceEntry)+PriceScale*tr하락);
}
SetStopProfittarget( PriceScale*터치익절 , PointStop);
SetStopLoss( PriceScale*즉시손절 , PointStop);
2020-05-29
2505
글번호 139332
시스템
답변완료
청산후 재진입가 조정
질문은 크게 두가지 입니다
1. 재 진입시 진입가격 정정
매수/매도 포지션 보유 중 청산조건에 부합하여 청산한 뒤에 재진입할 경우 진입가를 정정하고 싶습니다
기초 진입은 L1~L3, S1~S3 하되 청산조건에 부합하여 청산하면 NL1 ~ NL3, NS1~ NS3 로 진입가를 정정하고 싶습니다
그리고 NL1 ~ NL3 진입가 수식은
NL1 = 매수포지션 보유중에 청산조건에 부합하여 마지막으로 청산된 가격에서 + LTR
NL2 = NL1 + LTR * 0.5
NL3 = NL1 + LTR
NS1 ~ NS3 진입가 수식은
NS1 = 매도포지션 보유중에 청산조건에 부합하여 마지막으로 청산된 가격에서 - STR
NS2 = NS1 - STR * 0.5
NS3 = NS1 - STR
2. 재 진입 이후 청산조건
- 재 진입을 하고 나서 청산조건을 새로 작성해야되는지 궁금합니다!
# ENTRY
L1 = DAYOPEN + LTR ;
L2 = L1 + (LTR * 0.5);
L3 = L1 + LTR;
S1 = DAYOPEN - STR;
S2 = S1 - (STR * 0.5);
S3 = S1 - STR;
IF MarketPosition == 0 AND BDATE != EXITDATE(1) Then {
IF H < L1 AND NEXTBARSDATE == SDATE Then BUY("L1",ATSTOP,L1);
IF L > S1 AND NextBarSdate == SDATE THEN SELL("S1",ATSTOP,S1);
}
# 매수 피라미딩
IF MarketPosition == 1 AND STIME <153000 THEN {
if highest(h,BarsSinceEntry) < L2 Then
buy("L2",ATSTOP,L2);
if highest(h,BarsSinceEntry) < L1 + LTR Then
buy("L3",ATSTOP, L3);
}
# 매수청산
IF MarketPosition == 1 then {
if NextBarSdate == SDATE Then
ExitLong("LS",AtStop,LatestEntryPrice - LTR);
NL1 = LatestEntryPrice(1);
NL2 = NL1 + LTR * 0.5;
NL3 = NL1 + LTR;
IF NextBarSdate != SDATE Then
ExitLong("EL",ATMARKET);
}
# 매도 피라미딩
IF MarketPosition == -1 AND STIME < 153000 THEN {
IF Lowest(L,BarsSinceEntry) > S2 Then
SELL("S2",AtStop,S2);
IF Lowest(L,BarsSinceEntry) > S1 - STR Then
SELL("S3",AtStop,S3);
}
# 매도청산
IF MarketPosition == -1 then {
IF NextBarSdate == SDATE Then EXITSHORT("SS",AtStop,LatestEntryPrice + STR);
NS1 = LatestEntryPrice(1);
NS2 = NS1 - STR * 0.5;
NS3 = NS1 - Str;
SetStopEndofday();
}
ELSE SetStopEndofday(0); #해제
# 재진입
IF MARKETPOSITION == 0 AND BDATE == EXITDATE(1) THEN {
IF LatestExitName(1) == "LS" AND H < NL1 AND NextBarSdate == sDate THEN BUY("NL1",ATSTOP,NL1);
IF LatestExitName(1) == "SS" AND L > NS1 AND NextBarSdate == sDate THEN SELL("SN1", ATSTOP,NS1);
}
# 재진입 피라미딩
IF BDATE == EXITDATE(1) THEN {
IF LatestEntryName == "NL1" AND Highest(H,BarsSinceEntry) < NL2 THEN BUY("NL2",ATSTOP,NL2);
IF LatestEntryName == "NL2" AND Highest(H,BarsSinceEntry) < NL3 THEN BUY("NL3",ATSTOP,NL3);
IF LatestEntryName == "NS1" AND Lowest(L,BarsSinceEntry) > NS2 THEN SELL("NS2",ATSTOP,NS2);
IF LatestEntryName == "NS2" AND Lowest(L,BarsSinceEntry) > NS3 THEN SELL("NS3",ATSTOP,NS2);
}
2020-05-28
2509
글번호 139331
시스템
답변완료
부탁드립니다
수고하십니다
*아래수식을 적용해 보니 봉에 별표시가 안보이네요 수식부탁드립니다
input : 기간1(12),기간2(26),기간3(9);
var : MM(0),MS(0),조건(false),MV(0),비교(false),tx(0);
MM=MACD(기간1,기간2);
Ms=ema(MM,기간3);
조건=MM>MM[1]&&MM[1]<MM[2]&&MM<Ms;
if 조건 Then
Mv = L[1];
비교=M<Ms&&MM[1]<Ms[1]&&
MM[2]<Ms[2]&&
MM[3]<Ms[3]&&
MM[4]<Ms[4]&&
MM[5]<Ms[5]&&
MM[6]<Ms[6]&&
MM[7]<Ms[7]&&
MM[8]<Ms[8]&&
MM[9]<Ms[9];
if CrossDOWN(C,Mv)&&비교 Then{
tx = text_new(sdate,stime,H+PriceScale*5,"★");
#Text_SetStyle(tx,2,1);
Text_SetColor(tx,BLACK);
Text_SetBold(tx,4);}
2020-05-28
2478
글번호 139329
지표