항상 빠르고 친절한 답변에 감사를 드립니다.
작성해 주신 식을 제가 운영하는 로직에 대입해 보았습니다.
처음 식을 적용했을 때는 총손익이 높아지길래 역시 프리장의 캔들의 크기가 본장에서 영향을 미치는 구나 생각을 했었는데 오히려 거래 횟수가 늘어 시뮬레이션의 거래내역을 살펴 봤더니 프리장에서의 실적이 누적되어 있었습니다.
알려주신 식이 프리장의 캔들크기에만 영향을 미치게할 수 없는지요?
참고로 TimeHigh(StartTime,EndTime) 함수를 사용해 봤지만 제대로 적용되는지 알수가 없었습니다.
다음은 운용하고 있는 로직(일부분)에 적용한 내용입니다.
input : THL_Bcan(109), THL_Scan(72);
input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623);
var : Tcond(False);
var : HH(0), LL(0), 프리캔들(0) ;
buySignal = 프리캔들 >= THL_Bcan and
buySignal = 프리캔들 >= THL_Scan and
//프리장캔들
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
HH = H;
LL = L;
}
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = False;
}
if Tcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
}
프리캔들 = (HH - LL);
//본장진입시간
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if Bdate != Bdate[1] Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
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;
if Tcond == true Then
{
if buySignal == true Then
Buy("Buy");
if buyExit == true Then
ExitLong("BExit");
if sellSignal == true Then
Sell("Sell");
if sellExit == true Then
ExitShort("SExit");
}
답변 2
예스스탁
예스스탁 답변
2024-10-02 10:09:45
안녕하세요
예스스탁입니다.
작성하신 수식에 보시면 프리장과 본장임을 체크하는 변수가
Tcond로 동일하므로 구분이 되지 않습니다.
수식을 합칠 경우 변수가 중복되는지 확인하셔야 합니다.
프리장은 preTrcond로 별도로 지정해 드립니다.
input : THL_Bcan(109), THL_Scan(72);
input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623);
var : Tcond(False),PreTcond(False);
var : HH(0), LL(0), 프리캔들(0) ;
buySignal = 프리캔들 >= THL_Bcan and
buySignal = 프리캔들 >= THL_Scan and
//프리장캔들
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
PreTcond = true;
HH = H;
LL = L;
}
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
PreTcond = False;
}
if PreTcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
}
프리캔들 = (HH - LL);
//본장진입시간
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if Bdate != Bdate[1] Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
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;
if Tcond == true Then
{
if buySignal == true Then
Buy("Buy");
if buyExit == true Then
ExitLong("BExit");
if sellSignal == true Then
Sell("Sell");
if sellExit == true Then
ExitShort("SExit");
}
즐거운 하루되세요
> 하날랑 님이 쓴 글입니다.
> 제목 : 프리장에서의 캔들의 크기와 관련 추가사항입니다.
> 항상 빠르고 친절한 답변에 감사를 드립니다.
작성해 주신 식을 제가 운영하는 로직에 대입해 보았습니다.
처음 식을 적용했을 때는 총손익이 높아지길래 역시 프리장의 캔들의 크기가 본장에서 영향을 미치는 구나 생각을 했었는데 오히려 거래 횟수가 늘어 시뮬레이션의 거래내역을 살펴 봤더니 프리장에서의 실적이 누적되어 있었습니다.
알려주신 식이 프리장의 캔들크기에만 영향을 미치게할 수 없는지요?
참고로 TimeHigh(StartTime,EndTime) 함수를 사용해 봤지만 제대로 적용되는지 알수가 없었습니다.
다음은 운용하고 있는 로직(일부분)에 적용한 내용입니다.
input : THL_Bcan(109), THL_Scan(72);
input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623);
var : Tcond(False);
var : HH(0), LL(0), 프리캔들(0) ;
buySignal = 프리캔들 >= THL_Bcan and
buySignal = 프리캔들 >= THL_Scan and
//프리장캔들
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
HH = H;
LL = L;
}
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = False;
}
if Tcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
}
프리캔들 = (HH - LL);
//본장진입시간
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if Bdate != Bdate[1] Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
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;
if Tcond == true Then
{
if buySignal == true Then
Buy("Buy");
if buyExit == true Then
ExitLong("BExit");
if sellSignal == true Then
Sell("Sell");
if sellExit == true Then
ExitShort("SExit");
}
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 프리장에서의 캔들의 크기와 관련 추가사항입니다.
>
안녕하세요
예스스탁입니다.
작성하신 수식에 보시면 프리장과 본장임을 체크하는 변수가
Tcond로 동일하므로 구분이 되지 않습니다.
수식을 합칠 경우 변수가 중복되는지 확인하셔야 합니다.
프리장은 preTrcond로 별도로 지정해 드립니다.
input : THL_Bcan(109), THL_Scan(72);
input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623);
var : Tcond(False),PreTcond(False);
var : HH(0), LL(0), 프리캔들(0) ;
buySignal = 프리캔들 >= THL_Bcan and
buySignal = 프리캔들 >= THL_Scan and
//프리장캔들
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
PreTcond = true;
HH = H;
LL = L;
}
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
PreTcond = False;
}
if PreTcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
}
프리캔들 = (HH - LL);
//본장진입시간
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if Bdate != Bdate[1] Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
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;
if Tcond == true Then
{
if buySignal == true Then
Buy("Buy");
if buyExit == true Then
ExitLong("BExit");
if sellSignal == true Then
Sell("Sell");
if sellExit == true Then
ExitShort("SExit");
}
즐거운 하루되세요
> 하날랑 님이 쓴 글입니다.
> 제목 : 프리장에서의 캔들의 크기와 관련 추가사항입니다.
> 항상 빠르고 친절한 답변에 감사를 드립니다.
작성해 주신 식을 제가 운영하는 로직에 대입해 보았습니다.
처음 식을 적용했을 때는 총손익이 높아지길래 역시 프리장의 캔들의 크기가 본장에서 영향을 미치는 구나 생각을 했었는데 오히려 거래 횟수가 늘어 시뮬레이션의 거래내역을 살펴 봤더니 프리장에서의 실적이 누적되어 있었습니다.
알려주신 식이 프리장의 캔들크기에만 영향을 미치게할 수 없는지요?
참고로 TimeHigh(StartTime,EndTime) 함수를 사용해 봤지만 제대로 적용되는지 알수가 없었습니다.
다음은 운용하고 있는 로직(일부분)에 적용한 내용입니다.
input : THL_Bcan(109), THL_Scan(72);
input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623);
var : Tcond(False);
var : HH(0), LL(0), 프리캔들(0) ;
buySignal = 프리캔들 >= THL_Bcan and
buySignal = 프리캔들 >= THL_Scan and
//프리장캔들
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
HH = H;
LL = L;
}
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = False;
}
if Tcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
}
프리캔들 = (HH - LL);
//본장진입시간
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if Bdate != Bdate[1] Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
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;
if Tcond == true Then
{
if buySignal == true Then
Buy("Buy");
if buyExit == true Then
ExitLong("BExit");
if sellSignal == true Then
Sell("Sell");
if sellExit == true Then
ExitShort("SExit");
}