예스스탁
예스스탁 답변
2020-08-28 14:22:18
안녕하세요
예스스탁입니다.
input : 기준평균봉값(150);
input : 하락률1(0.975);
input : 제1진입금액(5);
input : 제2진입금액(5);
input : 제3진입금액(5);
input : 제4진입금액(5);
input : 제5진입금액(5);
input : 제6진입금액(5);
input : 심리도기간(15),심리도값(80);
input : RSI기간(15),RSI값(88);
var : mav(0,data2),Xcond(False,data1),Xcnt(0,data1),Xvol(0,data1);
mav = data2(ma(c,기준평균봉값));
if data2(c<mav) and (MarketPosition == 0 or (MarketPosition == 1 and Xcond == False)) then
{
if DayLow < DayOpen*하락률1 and NextBarSdate == sDate Then
Buy("b1",AtStop,DayOpen*하락률1,Floor(제1진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.01) and NextBarSdate == sDate Then
Buy("b2",AtStop,DayOpen*(하락률1-0.01),Floor(제2진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.015) and NextBarSdate == sDate Then
Buy("b3",AtStop,DayOpen*(하락률1-0.015),Floor(제3진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.02) and NextBarSdate == sDate Then
Buy("b4",AtStop,DayOpen*(하락률1-0.02),Floor(제4진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.025) and NextBarSdate == sDate Then
Buy("b5",AtStop,DayOpen*(하락률1-0.025),Floor(제5진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.03) and NextBarSdate == sDate Then
Buy("b6",AtStop,DayOpen*(하락률1-0.03),Floor(제6진입금액*10000/C));
}
if MarketPosition == 1 Then
{
if Xcond == False and Data1(Simrido(심리도기간) > 심리도값 or rsi(RSI기간) > RSI값) Then
{
Xcond = true;
Xcnt = 0;
}
if Xcond == true Then
{
Xcnt = Xcnt+1;
if Xcnt < 20 then
Xvol = MaxContracts*0.05;
Else
Xvol = CurrentContracts;
ExitLong("bx",OnClose,DEf,"",Xvol,2);
}
}
Else
{
Xcnt = 0;
Xcond = False;
}
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : 누적 매수된 물량 특정 조건 발생시 1회 전량 매도 를 20회 분할 매도
> 국내 주식
data1 : 30분봉
data2 : 일봉
변경 요청건
아래 수식은 누적 매수된 물량 특정 조건 발생시 1회 전량 매도임니다.
그러다보면 과다 매수된 수량이 한번에 너무 많이 청산 입력됨에 따른 가격 왜곡이 우려됨
변경 사항 특정 매도 조건 발생시 (data1 차트에서 심리도 >80 or RSI > 80 )
data1(30분봉)에서 총 20회에 걸쳐 (약 이틀정도) 정량 분할 매도하는 수식 요망합니다.
* 주의사항:
특정조건(RSI>80 or 심리도>80)에 부합할때마다의 20회 분할 청산이 아니라
특정조건으로 최초 1회 매도 발생하면 무조건 연속으로 다음봉 19봉까지 분할 청산
(1회매도(전체물량의 5%) 발생하면 data1(30분봉)의 다음봉이 청산조건이 되든 안되든 무조건 연속 20회 분할 매도 )
==> 이게 요청하는 수식입니다.
사용 수식
===============================================================
input : 기준평균봉값(150);
input : 하락률1(0.975);
input : 제1진입금액(5);
input : 제2진입금액(5);
input : 제3진입금액(5);
input : 제4진입금액(5);
input : 제5진입금액(5);
input : 제6진입금액(5);
input : 심리도기간(15),심리도값(80);
input : RSI기간(15),RSI값(88);
var : mav(0,data2);
mav = data2(ma(c,기준평균봉값));
if data2(c<mav) then
{
if DayLow < DayOpen*하락률1 and NextBarSdate == sDate Then
Buy("b1",AtStop,DayOpen*하락률1,Floor(제1진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.01) and NextBarSdate == sDate Then
Buy("b2",AtStop,DayOpen*(하락률1-0.01),Floor(제2진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.015) and NextBarSdate == sDate Then
Buy("b3",AtStop,DayOpen*(하락률1-0.015),Floor(제3진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.02) and NextBarSdate == sDate Then
Buy("b4",AtStop,DayOpen*(하락률1-0.02),Floor(제4진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.025) and NextBarSdate == sDate Then
Buy("b5",AtStop,DayOpen*(하락률1-0.025),Floor(제5진입금액*10000/C));
if DayLow < DayOpen*(하락률1-0.03) and NextBarSdate == sDate Then
Buy("b6",AtStop,DayOpen*(하락률1-0.03),Floor(제6진입금액*10000/C));
}
if MarketPosition == 1 Then
{
if Data2(Simrido(심리도기간) > 심리도값 or rsi(RSI기간) > RSI값) Then
ExitLong();
}