예스스탁
예스스탁 답변
2022-06-02 16:05:47
안녕하세요
예스스탁입니다.
현재 수식에 진입이후 각 분할청산이 한번씩만 동작하게 하기 위해
진입이후 최고가가 평단가+n%보다 낮을때 값을 셋팅하고
다음봉에서 평단가+n%에 도달하면 청산되게 되어 있습니다.
진입봉의 고가도 포함이 되는데 이미 진입봉의 고가가 지정한 %를 충족하고 있으면
해당 분할청산이 나오지 않습니다.
청산식의 이름으로 진입이후 1번씩만 동작하게 변경해 드립니다.
#매수진입
if MarketPosition == 1 Then
{
#전봉대비 수량 감소(일부 청산발생을 위미)
if CurrentContracts < CurrentContracts[1] Then
{
#청산가 저장
var1 = LatestExitPrice(0);
#청산시간 저장
Var2 = TimeToMinutes(sTime);
if LatestExitName(0) == "3%익절" Then
Condition1 = true;
if LatestExitName(0) == "4%익절" Then
Condition2 = true;
if LatestExitName(0) == "5%익절" Then
Condition3 = true;
if LatestExitName(0) == "7%익절" Then
Condition4 = true;
}
#전봉대비 수량 증가(추가 진입발생을 의미)
if CurrentContracts > CurrentContracts[1] Then
{
#현재수량 저장
Var3 = CurrentContracts;
Condition1 = False;
Condition2 = False;
Condition3 = False;
Condition4 = False;
}
#일부청산이 한번이상 발생하고
#현재 시간이 일부청산후 10분 이후이고
#종가가 청산가 보다 작으면
#전량 청산
if var1 > 0 and TimeToMinutes(sTime) >= Var2+10 and C < AvgEntryPrice then
ExitLong("bx");
#평단가+3%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 40% 청산
if Condition1 == False Then
ExitLong("3%익절",AtLimit,AvgEntryPrice*1.03,"",Floor(Var3*0.40));
#평단가+4%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 30% 청산
if Condition2 == False Then
ExitLong("4%익절",AtLimit,AvgEntryPrice*1.04,"",Floor(Var3*0.30));
#평단가+5%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 10% 청산
if Condition3 == False Then
ExitLong("5%익절",AtLimit,AvgEntryPrice*1.05,"",Floor(Var3*0.10));
#평단가+6%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 10% 청산
if Condition4 == False Then
ExitLong("7%익절",AtLimit,AvgEntryPrice*1.06,"",Floor(Var3*0.10));
#평단가+10%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 전량 청산
ExitLong("10%익절",AtLimit,AvgEntryPrice*1.10);
}
Else#매수진입중이 아니면
{
#변수 0으로 초기화
var1 = 0;
Var2 = 0;
Condition1 = False;
Condition2 = False;
Condition3 = False;
Condition4 = False;
}
즐거운 하루되세요
> 맴맴잉 님이 쓴 글입니다.
> 제목 : 매도 청산식 문의 드립니다.
> 얼마전에 현물관련 분할매도 관련 시스템식을 요청드린적이 있었습니다.
그런데 해당식으로 적용했을때 적용이 안되는 경우가 있는데
이유를 찾을수가 없어 이렇게 글을 남깁니다.
요청드렸던 식은 아래와 같습니다.
위 그림파일을 보시면 1,2,3번 으로 동그라미를 쳐놨습니다.
1. 1번 동그라미에서 3%분할익절, 4% 분할일익절 청산이 되지 않은 이유가 궁금합니다.
2. 2번 동그라미에서는 아주 잘 적용 된것 같습니다. 이부분에선 질문이 없습니다.
3. 3번 동그라미에서는 B, C, D 에서 매수가 되었고, 3%에서 전량 매도청산되었는데, 해당부분에서는 4, 5, 7, 10%의 분할익절이 왜 적용안되었는지 궁금합니다.
확인부탁드리겠습니다.
그리고 항상 감사드립니다.
---------------------------------------------------------------
안녕하세요
예스스탁입니다.
예스랭귀지는 대소문자 구분하지 않습니다 h나 H나 같습니다.
#매수진입
if MarketPosition == 1 Then
{
#전봉대비 수량 감소(일부 청산발생을 위미)
if CurrentContracts < CurrentContracts[1] Then
{
#청산가 저장
var1 = LatestExitPrice(0);
#청산시간 저장
Var2 = TimeToMinutes(sTime);
}
#전봉대비 수량 증가(추가 진입발생을 의미)
if CurrentContracts > CurrentContracts[1] Then
{
#현재수량 저장
Var3 = CurrentContracts;
#고가 저장
Var4 = H;
}
#최근 진입후 최고가 계산
#현재봉 고가가 Var4보다 크면 Var4의 값을 현재봉 고가로 저장
if h > Var4 Then
Var4 = h;
#일부청산이 한번이상 발생하고
#현재 시간이 일부청산후 10분 이후이고
#종가가 청산가 보다 작으면
#전량 청산
if var1 > 0 and TimeToMinutes(sTime) >= Var2+10 and C < AvgEntryPrice then
ExitLong("bx");
#진입후 최고가가 평단가+3% 작으면
#평단가+3%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 40% 청산
if Var4 < AvgEntryPrice*1.03 Then
ExitLong("3%익절",AtLimit,AvgEntryPrice*1.03,"",Floor(Var3*0.40));
#진입후 최고가가 평단가+4% 작으면
#평단가+4%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 30% 청산
if Var4 < AvgEntryPrice*1.04 Then
ExitLong("4%익절",AtLimit,AvgEntryPrice*1.04,"",Floor(Var3*0.30));
#진입후 최고가가 평단가+5% 작으면
#평단가+5%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 10% 청산
if Var4 < AvgEntryPrice*1.05 Then
ExitLong("5%익절",AtLimit,AvgEntryPrice*1.05,"",Floor(Var3*0.10));
#진입후 최고가가 평단가+6% 작으면
#평단가+6%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 10% 청산
if Var4 < AvgEntryPrice*1.06 Then
ExitLong("7%익절",AtLimit,AvgEntryPrice*1.06,"",Floor(Var3*0.10));
#진입후 최고가가 평단가+10% 작으면
#평단가+10%를 셋팅하고 다음봉에서 해당가격 터치시 즉시 전량 청산
if Var4 < AvgEntryPrice*1.10 Then
ExitLong("10%익절",AtLimit,AvgEntryPrice*1.10);
}
Else#매수진입중이 아니면
{
#변수 0으로 초기화
var1 = 0;
Var2 = 0;
}