예스스탁
예스스탁 답변
2022-07-01 09:53:15
안녕하세요
예스스탁입니다.
1
수식에서 사용되는 dayhigh,daylow 함수는 영업일변경시간이 기준입니다.
밤 0시를 기준으로 일간 시고저종을 계산해서 리턴하는 함수가 아닙니다.
해당 부분은 별도로 수정해 드릴 부분이 없습니다.
2
현재 수식이 n기간 최고가와 최저가를 기준으로 계산을 합니다.
1로 지정하면 당일 최고가와 최저가가 기준입니다.
전일기준으로 n일이 계산되게 변경해 드립니다.
3
input : n(1),손절틱수(200);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),entry(0),Tcond(False);
var : cnt(0),hh(0),ll(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = NextBarSdate > (10000 * Year) + (100 * 3) + v2
And NextBarSdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
hh = 0;
ll = 0;
For cnt = 1 to n
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
IF ET > ST Then
SetStopEndofday(ET);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(ET);
}
if ((sDate != sDate[1] and Stime >= ET) or
(sDate == sDate[1] and Stime >= ET and sTime < ET)) Then
Tcond = False;
if Bdate != Bdate[1] Then
{
Tcond = true;
entry = 0;
if ST <= ET Then
SetStopEndofday(0);
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if Tcond == true Then
{
if entry < 1 Then
Buy("b",AtLimit,hh-(hh-ll)*0.764);
ExitLong("sx",AtLimit,hh-(hh-ll)*0.240);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
}
즐거운 하루되세요
> 푸른 님이 쓴 글입니다.
> 제목 : 77886 수식어 수정 바랍니다
> input : n(1),손절틱수(200);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),entry(0),Tcond(False);
var : cnt(0),hh(0),ll(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = NextBarSdate > (10000 * Year) + (100 * 3) + v2
And NextBarSdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
hh = 0;
ll = 0;
For cnt = 0 to n-1
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
IF ET > ST Then
SetStopEndofday(ET);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(ET);
}
if ((sDate != sDate[1] and Stime >= ET) or
(sDate == sDate[1] and Stime >= ET and sTime < ET)) Then
Tcond = False;
if Bdate != Bdate[1] Then
{
Tcond = true;
entry = 0;
if ST <= ET Then
SetStopEndofday(0);
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if Tcond == true Then
{
if entry < 1 Then
Buy("b",AtLimit,hh-(hh-ll)*0.764);
ExitLong("sx",AtLimit,hh-(hh-ll)*0.240);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
}
---------------------------------
전일폭의 기준을 한국시간 24시~ 익일23시59분으로 되어 있고
그걸 기준으로 다음 수열 수식어로 신호가 나오는것 같습니다.
전일을 미국 매매시간인 07시부터 익일 05시 30분까지로 수정해 주시고
이걸 기준으로 다음신호가 나오도록 부탁 드립니다.