조건1)
time1~time2 시간동안 open<close 이며 단기이평 > 장기이평 이라면
time2 시간에 매수
22:59에 청산을 하는 로직을 구현하고자 하는데
해보니 해당 건 이외에 많은 거래가 일어나고 있습니다.
어떻게해야 하루에 한건만 거래가 발생하게 할 수 있을까요...?
-----------------------------------------------------------------
input : time1(080000),time2(100000),time3(225900),shortperiod(20),longperiod(120);
var : Summer(False),Year(0);
var : v1(0),v2(0),v3(0),v4(0),T1(0),T2(0),T3(0);
if bdate != bdate[1] Then
{
var1 = 0;
//썸머타임체크
Year = Floor(bdate/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
{
t1 = time1;
t2 = time2;
t3 = time3;
}
Else
{
t1 = time1+10000;
t2 = time2+10000;
t3 = time3+10000;
}
}
if timeopen(t1,t2) < timeclose(t1,t2) and ema(C,shortperiod)>ema(C,longperiod) then buy("b",AtMarket);
if MarketPosition == 1 then
{
SetStopEndofday(t3);
}
답변 1
예스스탁
예스스탁 답변
2020-08-31 18:05:38
안녕하세요
예스스탁입니다.
input : time1(080000),time2(100000),time3(225900),shortperiod(20),longperiod(120);
var : Summer(False),Year(0);
var : v1(0),v2(0),v3(0),v4(0),T1(0),T2(0),T3(0);
var : O1(0);
if bdate != bdate[1] Then
{
//썸머타임체크
Year = Floor(bdate/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
{
t1 = time1;
t2 = time2;
t3 = time3;
}
Else
{
t1 = time1+10000;
t2 = time2+10000;
t3 = time3+10000;
}
O1 = open;
}
var1 = ma(C,shortperiod);
var2 = ma(C,longperiod);
if (sdate != sdate[1] and stime >= t1) or
(sdate == sdate[1] and stime >= t1 and stime[1] > t1) then
{
O1 = O;
}
if (sdate != sdate[1] and stime >= t2) or
(sdate == sdate[1] and stime >= t2 and stime[1] > t2) then
{
if O1 > 0 and C > O1 and var1 > var2 Then
buy();
}
if time3 > time2 Then
SetStopEndofday(t3);
else
{
if sdate != sdate[1] Then
SetStopEndofday(t3);
if bdate != bdate[1] Then
SetStopEndofday(0);
}
즐거운 하루되세요
> 예스모어 님이 쓴 글입니다.
> 제목 : 도움 부탁드립니다.
> 조건1)
time1~time2 시간동안 open<close 이며 단기이평 > 장기이평 이라면
time2 시간에 매수
22:59에 청산을 하는 로직을 구현하고자 하는데
해보니 해당 건 이외에 많은 거래가 일어나고 있습니다.
어떻게해야 하루에 한건만 거래가 발생하게 할 수 있을까요...?
-----------------------------------------------------------------
input : time1(080000),time2(100000),time3(225900),shortperiod(20),longperiod(120);
var : Summer(False),Year(0);
var : v1(0),v2(0),v3(0),v4(0),T1(0),T2(0),T3(0);
if bdate != bdate[1] Then
{
var1 = 0;
//썸머타임체크
Year = Floor(bdate/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
{
t1 = time1;
t2 = time2;
t3 = time3;
}
Else
{
t1 = time1+10000;
t2 = time2+10000;
t3 = time3+10000;
}
}
if timeopen(t1,t2) < timeclose(t1,t2) and ema(C,shortperiod)>ema(C,longperiod) then buy("b",AtMarket);
if MarketPosition == 1 then
{
SetStopEndofday(t3);
}