예스스탁
예스스탁 답변
2021-03-17 14:55:58
안녕하세요
예스스탁입니다.
매수기준가와 매도기준가 그리는 지표식도 같이 올려드립니다
1
input : 비율(5),진입횟수(1);
var : 매수기준가(0),매도기준가(0);
input : StartTime(70000),EndTime(065000);
var : Tcond(false),entry(0);
var : Year(0),V1(0),V2(0),V3(0),V4(0),Summer(False),ST(0),ET(0);
if sDate != sDate[1] Then
{
SetStopEndofday(Endtime);
//썸머타임체크
Year = Floor(sdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = bdate > (10000 * Year) + (100 * 3) + v2
And bdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = StartTime;
ET = EndTime;
}
Else
{
ST = StartTime+10000;
ET = EndTime+10000;
}
}
if (sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET) Then
Tcond = False;
if (sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST) Then
{
Tcond = true;
SetStopEndofday(0);
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if NextBarStime >= ST and sTime < ST Then
{
var1 = Floor(NextBarOpen*(1-비율/100)*10)/10;
Var2 = Ceiling(NextBarOpen*(1+비율/100)*10)/10;
Buy("b1",AtLimit,var1);
Sell("s1",AtLimit,var2);
}
else
{
if Tcond == true and entry < 진입횟수 Then
{
매수기준가 = Floor(DayOpen*(1-비율/100)*10)/10;
매도기준가 = Ceiling(DayOpen*(1+비율/100)*10)/10;
if MarketPosition <= 0 and L > 매수기준가 Then
Buy("b",AtLimit,매수기준가);
if MarketPosition >= 0 and H < 매도기준가 Then
Sell("s",AtLimit,매도기준가);
}
}
2
input : 비율(5);
var : 매수기준가(0),매도기준가(0);
input : StartTime(70000),EndTime(065000);
var : Tcond(false);
매수기준가 = Floor(DayOpen*(1-비율/100)*10)/10;
매도기준가 = Ceiling(DayOpen*(1+비율/100)*10)/10;
Plot1(매수기준가);
Plot2(매도기준가);
즐거운 하루되세요
> 후니러비 님이 쓴 글입니다.
> 제목 : 재문의 드립니다
> 테스트해보니 전혀 엉뚱한 결과가 나와서요
제가 설명을 잘못 드린거 같습니다
1. 실제매수가는 현재가가 매수기준가에 도달하면 그 시점에 매수한다는 의미입니다
매수기준가가 당일저가보다 작으면 매수가 불가능하니 매도가 먼저 체결되게 됩니다
그러면 매수기준가에 청산하거나 종가에 매도청산을 하는것입니다
2. 실제매도가도 현재가가 매도기준가에 도달했을때 매도한다는 의미입니다
매도기준가가 당일고가보다 크면 매도가 불가능하니 매수가 먼저 체결되게 됩니다
매도기준가에 청산하거나 종가에 매수청산을 하는것입니다
3. 예를 들어 현재가가 200원이고
매수기준가가 100원이고 매도기준가가 300원입니다
현재가가 300원에 먼저 도달하게 되면 매도가 먼저 체결되어 청산가는 매수기준가인
100원입니다. 만약 그날 100원에 도달하지 못하게 되면 종가에 청산한다는 것입니다
반대로 100원에 먼저 도달하게 되면 매수체결, 청산은 300원, 300원실패시 종가청산
4. 그리고 문의 드릴때 중요한걸 빼먹었는데요
하루에 한번 매매입니다
매수를 먼저하든 매도를 먼저하든 청산하게 되면 그날은 더이상 매매신호가 안뜨게요
물론 다음날은 시가기준으로 새로이 신호가 떠야하구요
5. 그리고 주석을 좀 달아주시면 고맙겠습니다
공부에 도움이 될것같고 문의하는 횟수를 줄이고 싶습니다 ^^;;;;
번거롭게 해서 죄송하고 감사드립니다.
이번 문의로 전달이 잘됐음 좋겠네요 ㅠ.ㅠ
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다
> 안녕하세요
예스스탁입니다.
input : 비율(5);
var : 매수기준가(0),매도기준가(0);
input : StartTime(70000),EndTime(065000);
var : Tcond(false);
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
SetStopEndofday(0);
}
매수기준가 = Floor(DayOpen*(1-비율/100)*10)/10;
매도기준가 = Ceiling(DayOpen*(1+비율/100)*10)/10;
if Tcond == true Then
{
if MarketPosition <= 0 and L > 매수기준가 Then
Buy("b",AtLimit,매수기준가);
if MarketPosition >= 0 and H < 매도기준가 Then
Sell("s",AtLimit,매도기준가);
}
즐거운 하루되세요
> 후니러비 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 1.매수기준가=시가*(1-비율/1) <--무조건 소수점한자리까지만 계산해 내림처리하고 싶습니다
ex) 100.11~100.19 ->100.1
2.매도기준가=시가*(1+비율/1) <--무조건 소수점한자리까지만 계산해 올림처리하고 싶습니다
ex) 100.11~100.19 ->100.2
3.실제매수가=만약에 매수기준가가 장중에 도달하면 매수기준가로 매수,아니라면 종가매수
4.실제매도가=만약에 매도기준가가 장중에 도달하면 매도기준가로 매도,아니라면 종가매도
5.비율을 변수로 하고 싶습니다
6.해외선물시간을 적용하고 싶습니다(08:00~다음날07:00)
7.당일매매 당일청산입니다. 매일 시가기준으로 새로운신호가 뜨게 해주세요
요구가 많아서 죄송합니다
초보가 혼자 게시판검색해가며 하다가 도저히 능력밖인것 같아서 부탁드립니다
감사합니다