예스스탁
예스스탁 답변
2020-05-29 11:26:31
안녕하세요
예스스탁입니다.
청산은 수정할 필요가 없습니다.
재집입도 동일하게 적용됩니다.
L1 = DAYOPEN + LTR ;
L2 = L1 + (LTR * 0.5);
L3 = L1 + LTR;
S1 = DAYOPEN - STR;
S2 = S1 - (STR * 0.5);
S3 = S1 - STR;
NL1 = LatestEntryPrice(1)+LTR;
NL2 = NL1 + LTR * 0.5;
NL3 = NL1 + LTR;
NS1 = LatestEntryPrice(1)-STR;
NS2 = NS1 - STR * 0.5;
NS3 = NS1 - 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 and IsEntryName("L1") == true 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);
IF NextBarSdate != SDATE Then
ExitLong("EL",ATMARKET);
}
# 매도 피라미딩
IF MarketPosition == -1 AND STIME < 153000 and IsEntryName("S1") == true 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);
SetStopEndofday();
}
ELSE SetStopEndofday(0); #해제
# 재진입
IF MARKETPOSITION == 0 AND BDATE == EXITDATE(1) THEN
{
IF MarketPosition(1) == 1 AND H < NL1 AND NextBarSdate == sDate THEN BUY("NL1",ATSTOP,NL1);
IF MarketPosition(1) == -1 AND L > NS1 AND NextBarSdate == sDate THEN SELL("SN1", ATSTOP,NS1);
}
# 재진입 피라미딩
IF BDATE == EXITDATE(1) and MarketPosition == 1 and IsEntryName("NL1") == true EN
{
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 BDATE == EXITDATE(1) and MarketPosition == -1 and IsEntryName("SN1") == true THEN
{
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);
}
즐거운 하루되세요
> 엠씨용가 님이 쓴 글입니다.
> 제목 : 청산후 재진입가 조정
> 질문은 크게 두가지 입니다
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);
}