커뮤니티
수식 수정
2013-04-24 16:45:41
214
글번호 62455
데이터 매니저에서 데이터를 불러와 보조 챠트에 data4번으로 띄운후
아래의 식을 적용하여 장중고가, 저가에서 data4의 값이 반대로 1000이 변하면 진입하라는 수식을 만들어 적용했더니 신호가 나오지 않습니다. .
당초에 작성해 주셨던 수식에서 무언가 빠뜨린거 같은데요..
수식 수정 부탁 드립니다.
아래
input : p(14),기준선1(13),기준선2(17),기준선3(21);
var : val1(0,data1),val2(0,data1),val3(0,data1),val4(0,data1),val5(0,data1),
val6(0,data1),val7(0,data1),val8(0,data1),val9(0,data1);
var : v1(0,data1),v2(0,data1),v3(0,data1),v4(0,data1));
v1 = data1(ADX(14));
v2 = data1(Diplus(14));
v3 = data1(DiMinus(14));
var1 =data4(c);
//-------------------------------------------------------------
//----------------------------------------------------
var : AA(0),BB(0),Vv(0),H1(0),L1(0),count(0),cnt(0);
if date != date[1] Then
{
H1 = var1;
L1 = var1;
}
count = 0;
for cnt = 0 to 10
{
if sdate == EntryDate(cnt) Then
count = count+1;
}
#당일 첫진입은 당일 첫봉대비
#매수진입
if MarketPosition == 0 Then #진입포지션이 있으면 진입금지
//시작시간
if stime >= 090100 Then
if count == 0 Then
if Var1 >= l1+1000 Then
buy("매수턴");
if MarketPosition == 0 then #진입포지션이 있으면 진입금지
if count == 0 Then
if var1 >= h1-1000 Then
//시작시간
if stime >= 090100 Then
sell("매도턴");
//--------------------------------------------------------------------
#현재 무포지션이면
if count > 0 Then{
if MarketPosition == 0 Then
{
//시작시간
if stime >= 090100 Then
# 직전청산이후 최저가+1000이면 매수
// if VV >= Lowest(vv,BarsSinceExit(1))+1000 Then
if Lowest(var1,BarsSinceExit(1))+1000 Then
if var1 <= l1+1000 Then
buy("매수턴2");
if MarketPosition == 0 Then
//시작시간
if stime >= 090100 Then
# 직전청산이후 최고가-1000이면 매도
if Highest(var1,BarsSinceExit(1))-1700 Then
// if VV <= Highest-1000 Then
if var1 >= h1-1000 Then
Sell("매도턴2(확인후진입)");
}
}
답변 1
예스스탁 예스스탁 답변
2013-04-24 17:28:53
안녕하세요
예스스탁입니다.
h1과 l1이 당일 첫봉값만 저장하게 되어 있고
이후 최대값과 최소값을 구하는 부분이 없습니다.
해당 부분 추가했습니다.
input : p(14),기준선1(13),기준선2(17),기준선3(21);
var : val1(0,data1),val2(0,data1),val3(0,data1),val4(0,data1),val5(0,data1),
val6(0,data1),val7(0,data1),val8(0,data1),val9(0,data1);
var : v1(0,data1),v2(0,data1),v3(0,data1),v4(0,data1),d4(0,data1);
var : AA(0),BB(0),Vv(0),H1(0),L1(0),count(0),cnt(0);
v1 = data1(ADX(14));
v2 = data1(Diplus(14));
v3 = data1(DiMinus(14));
d4 =data4(c);
//-------------------------------------------------------------
//----------------------------------------------------
if data4(date != date[1]) Then
{
H1 = d4;
L1 = d4;
}
if d4 > H1 Then
H1 = d4;
if d4 < L1 Then
L1 = d4;
count = 0;
for cnt = 0 to 10
{
if sdate == EntryDate(cnt) Then
count = count+1;
}
#당일 첫진입은 당일 첫봉대비
#매수진입
if MarketPosition == 0 Then #진입포지션이 있으면 진입금지
//시작시간
if stime >= 090100 Then
if count == 0 Then
if d4 >= l1+1000 Then
buy("매수턴");
if MarketPosition == 0 then #진입포지션이 있으면 진입금지
if count == 0 Then
if d4 >= h1-1000 Then
//시작시간
if stime >= 090100 Then
sell("매도턴");
//--------------------------------------------------------------------
#현재 무포지션이면
if count > 0 Then{
if MarketPosition == 0 Then
{
//시작시간
if stime >= 090100 Then
# 직전청산이후 최저가+1000이면 매수
// if VV >= Lowest(vv,BarsSinceExit(1))+1000 Then
if Lowest(d4,BarsSinceExit(1))+1000 Then
if d4 <= l1+1000 Then
buy("매수턴2");
if MarketPosition == 0 Then
//시작시간
if stime >= 090100 Then
# 직전청산이후 최고가-1000이면 매도
if Highest(d4,BarsSinceExit(1))-1700 Then
// if VV <= Highest-1000 Then
if d4 >= h1-1000 Then
Sell("매도턴2(확인후진입)");
}
}
즐거운 하루되세요
> HI_cbk4610 님이 쓴 글입니다.
> 제목 : 수식 수정
> 데이터 매니저에서 데이터를 불러와 보조 챠트에 data4번으로 띄운후
아래의 식을 적용하여 장중고가, 저가에서 data4의 값이 반대로 1000이 변하면 진입하라는 수식을 만들어 적용했더니 신호가 나오지 않습니다. .
당초에 작성해 주셨던 수식에서 무언가 빠뜨린거 같은데요..
수식 수정 부탁 드립니다.
아래
input : p(14),기준선1(13),기준선2(17),기준선3(21);
var : val1(0,data1),val2(0,data1),val3(0,data1),val4(0,data1),val5(0,data1),
val6(0,data1),val7(0,data1),val8(0,data1),val9(0,data1);
var : v1(0,data1),v2(0,data1),v3(0,data1),v4(0,data1));
v1 = data1(ADX(14));
v2 = data1(Diplus(14));
v3 = data1(DiMinus(14));
var1 =data4(c);
//-------------------------------------------------------------
//----------------------------------------------------
var : AA(0),BB(0),Vv(0),H1(0),L1(0),count(0),cnt(0);
if date != date[1] Then
{
H1 = var1;
L1 = var1;
}
count = 0;
for cnt = 0 to 10
{
if sdate == EntryDate(cnt) Then
count = count+1;
}
#당일 첫진입은 당일 첫봉대비
#매수진입
if MarketPosition == 0 Then #진입포지션이 있으면 진입금지
//시작시간
if stime >= 090100 Then
if count == 0 Then
if Var1 >= l1+1000 Then
buy("매수턴");
if MarketPosition == 0 then #진입포지션이 있으면 진입금지
if count == 0 Then
if var1 >= h1-1000 Then
//시작시간
if stime >= 090100 Then
sell("매도턴");
//--------------------------------------------------------------------
#현재 무포지션이면
if count > 0 Then{
if MarketPosition == 0 Then
{
//시작시간
if stime >= 090100 Then
# 직전청산이후 최저가+1000이면 매수
// if VV >= Lowest(vv,BarsSinceExit(1))+1000 Then
if Lowest(var1,BarsSinceExit(1))+1000 Then
if var1 <= l1+1000 Then
buy("매수턴2");
if MarketPosition == 0 Then
//시작시간
if stime >= 090100 Then
# 직전청산이후 최고가-1000이면 매도
if Highest(var1,BarsSinceExit(1))-1700 Then
// if VV <= Highest-1000 Then
if var1 >= h1-1000 Then
Sell("매도턴2(확인후진입)");
}
}