커뮤니티
오류가 있는지 한번 봐주시면 감사하겠습니다.
2017-11-06 20:02:52
158
글번호 113942
아래의 수식을 사용 중입니다.
TBH글로벌을 11월2일 첫 진입하였습니다.
그리고는 3일과 6일날 음봉으로 마감이 되어서 정상적이라면 150000에 매수가 이루어져야 하는데 매수시그널이 발생하지 않았습니다.
로직대로라면 일봉상의 음봉종가(전일 종가대비 금일종가가 낮은 경우)에 매수가 되어야 하는데요....
어떤 문제인지 점검 부탁드립니다.
감사합니다.
- 아 래 -
var : N(3);
var : Right(3),Left(3),cnt(0),HH(0),ii(0);
Right = 3;
Left = 3;
for cnt = 0 to N-1{
if dayhigh(N) <= dayhigh(cnt) Then
Right = 3;
if dayhigh(N) < dayhigh(N+1+cnt) Then
Left = 3;
}
if Right == true and Left == true Then
HH = dayhigh(N);
input : 지정일(20171102);
var : 매수금액(500000);
var : cond(false),Xcond(false);
var : V1(0),V2(0);
Array : SH[10](0);
if sdate >= 지정일 and
MarketPosition == 0 and
stime == 143000 and C < DayClose(1) and C < O then
Buy("매수",OnClose,def,Floor(매수금액/C));
if MarketPosition == 1 Then
{
if MaxEntries == 5 and C <= AvgEntryPrice*0.75 Then
cond = true;
if stime == 143000 and C < DayClose(1) and C < O and C < AvgEntryPrice then
{
if ((cond == false and MaxEntries >= 1 and MaxEntries < 5) or
(cond == true and MaxEntries >= 5 and MaxEntries < 10)) then
{
Buy("매수1",OnClose,def,Floor(매수금액/C));
}}
if CurrentContracts > CurrentContracts[1] Then
Xcond = false;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bp" Then
Xcond = true;
- 1. 2017.11.06_TBH글로벌_오류수정용.png (0.06 MB)
답변 1
예스스탁 예스스탁 답변
2017-11-07 13:42:04
안녕하세요
예스스탁입니다.
if stime == 143000 and C < DayClose(1) and C < O and C < AvgEntryPrice then
추가진입조건이 14시30분봉이고 음봉(일봉이 아닌 분봉이 음봉)이라고 지정되어 있어
추가진입신호가 발생하지 않았습니다.
첨부파일에 지정하신 봉은 15시봉입니다.
시간을 15시로 변경하고 음봉도 일봉음봉으로 변경하면 아래와 같습니다.
if stime == 150000 and C < DayClose(1) and C < dayopen and C < AvgEntryPrice then
위 내용으로 수정하면 신호가 발생하지만 시간설정에 유의하셔야 합니다.
시스템은 정규장에서 신호와 주문이 집행되게 하셔야 합니다.
30분봉에서 지정한 15시봉은 15시 30분봉이 수신되면 완성이 되는데
15시 30분봉은 동시호가 봉입니다.
동시호가데이터는 동시호가가 종료되면 거래소에서 일괄로 보내주는 데이터로
해당 데이터를 받는시점은 이지 장이 모두 종료된 상태라
해당 데이터를 받고 신호가 발생하면 신호는 발생하지만 실제주문은 거부가 됩니다.
수식은 15시로 지정해서 작성해 드립니다.
올려주신 수식 내용상에만 보면 30분봉을 사용하야만 하는 내용이 없습니다.
5분이나 10분봉 주기로 지정해서 사용하시면 됩니다.
var : N(3);
var : Right(3),Left(3),cnt(0),HH(0),ii(0);
Right = 3;
Left = 3;
for cnt = 0 to N-1{
if dayhigh(N) <= dayhigh(cnt) Then
Right = 3;
if dayhigh(N) < dayhigh(N+1+cnt) Then
Left = 3;
}
if Right == true and Left == true Then
HH = dayhigh(N);
input : 지정일(20171102);
var : 매수금액(500000);
var : cond(false),Xcond(false);
var : V1(0),V2(0);
Array : SH[10](0);
if sdate >= 지정일 and MarketPosition == 0 and
stime == 143000 and C < DayClose(1) and C < DayOpen then
Buy("매수",OnClose,def,Floor(매수금액/C));
if MarketPosition == 1 Then
{
if MaxEntries == 5 and C <= AvgEntryPrice*0.75 Then
cond = true;
if stime == 143000 and C < DayClose(1) and C < dayopen and C < AvgEntryPrice then
{
MessageLog("aa");
if ((cond == false and MaxEntries >= 1 and MaxEntries < 5) or
(cond == true and MaxEntries >= 5 and MaxEntries < 10)) then
{
Buy("매수1",OnClose,def,Floor(매수금액/C));
}
}
if CurrentContracts > CurrentContracts[1] Then
Xcond = false;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bp" Then
Xcond = true;
}
즐거운 하루되세요
> 승부사1 님이 쓴 글입니다.
> 제목 : 오류가 있는지 한번 봐주시면 감사하겠습니다.
> 아래의 수식을 사용 중입니다.
TBH글로벌을 11월2일 첫 진입하였습니다.
그리고는 3일과 6일날 음봉으로 마감이 되어서 정상적이라면 150000에 매수가 이루어져야 하는데 매수시그널이 발생하지 않았습니다.
로직대로라면 일봉상의 음봉종가(전일 종가대비 금일종가가 낮은 경우)에 매수가 되어야 하는데요....
어떤 문제인지 점검 부탁드립니다.
감사합니다.
- 아 래 -
var : N(3);
var : Right(3),Left(3),cnt(0),HH(0),ii(0);
Right = 3;
Left = 3;
for cnt = 0 to N-1{
if dayhigh(N) <= dayhigh(cnt) Then
Right = 3;
if dayhigh(N) < dayhigh(N+1+cnt) Then
Left = 3;
}
if Right == true and Left == true Then
HH = dayhigh(N);
input : 지정일(20171102);
var : 매수금액(500000);
var : cond(false),Xcond(false);
var : V1(0),V2(0);
Array : SH[10](0);
if sdate >= 지정일 and
MarketPosition == 0 and
stime == 143000 and C < DayClose(1) and C < O then
Buy("매수",OnClose,def,Floor(매수금액/C));
if MarketPosition == 1 Then
{
if MaxEntries == 5 and C <= AvgEntryPrice*0.75 Then
cond = true;
if stime == 143000 and C < DayClose(1) and C < O and C < AvgEntryPrice then
{
if ((cond == false and MaxEntries >= 1 and MaxEntries < 5) or
(cond == true and MaxEntries >= 5 and MaxEntries < 10)) then
{
Buy("매수1",OnClose,def,Floor(매수금액/C));
}}
if CurrentContracts > CurrentContracts[1] Then
Xcond = false;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bp" Then
Xcond = true;