선물(data2)신호를 바탕으로 콜매수를 하려고 합니다.
아래가 선물 신호중 일부입니다.
그 아래가 콜옵션을 위해 변경한 수식인데요...
선물에서는 정상시뮬이 되는데, 콜옵션(두번째수식)에서는 작동을 안해요.
수식수정 부탁드립니다.
value1 = abs((DayHigh(1)-DayLow(1))/DayLow(1))*100;
value2 = abs((DayHigh(2)-DayLow(2))/DayLow(2))*100;
value3 = abs((DayHigh(3)-DayLow(3))/DayLow(3))*100;
value4 = abs((DayHigh(4)-DayLow(4))/DayLow(4))*100;
value5 = abs((value1+value2+value3+value4)/4);
if c > c[500] and
c < (dayclose(1) * (1-(value5 * 0.001))) Then
Buy("콜");
------------------------------------------------------
value1 = data2(abs((DayHigh(1)-DayLow(1))/DayLow(1))*100);
value2 = data2(abs((DayHigh(2)-DayLow(2))/DayLow(2))*100);
value3 = data2(abs((DayHigh(3)-DayLow(3))/DayLow(3))*100);
value4 = data2(abs((DayHigh(4)-DayLow(4))/DayLow(4))*100);
value5 = data2(abs((value1+value2+value3+value4)/4));
if data2(c) > data2(c[500]) and
data2(c) < data2(dayclose(1)) * (1-(value5 * 0.001))
Then
Buy("상");
답변 2
참조데이터에서 쓰는 함수가 다릅니다. DayHigh -> 기본차트에서 사용하는 일별고점계산 함수이고, HighD -> 참조데이터에서 사용하는 일별고점계산함수입니다.
그래서 아래처럼 사용해야 동작할듯 싶네요.
value1 = abs((data2(HighD(1))-data2(LowD(1)))/data2(LowD(1)))*100);
value2 = abs((data2(HighD(2))-data2(LowD(2)))/data2(LowD(2)))*100);
value3 = abs((data2(HighD(3))-data2(LowD(3)))/data2(LowD(3)))*100);
value4 = abs((data2(HighD(4))-data2(LowD(4)))/data2(LowD(4)))*100);
value5 = abs((value1+value2+value3+value4)/4));
if data2(c) > data2(c[500]) and
data2(c) < data2(closed(1)) * (1-(value5 * 0.001))
Then
Buy("상");
데이터값이나 함수만 DATA2() 가로안에 넣으셔야 될듯 싶습니다.
예를 들면 참조데이터의 종가는 DATA2(C)
참조데이터의5일이동평균값은 DATA2(ma(C,5))
간단한 답변이라 제가 드렸습니다. 도움이 되실지 모르겠습니다. 성투하세요~
> 님의침묵 님이 쓴 글입니다.
> 제목 : 님의침묵-수식수정요청
> 선물(data2)신호를 바탕으로 콜매수를 하려고 합니다.
아래가 선물 신호중 일부입니다.
그 아래가 콜옵션을 위해 변경한 수식인데요...
선물에서는 정상시뮬이 되는데, 콜옵션(두번째수식)에서는 작동을 안해요.
수식수정 부탁드립니다.
value1 = abs((DayHigh(1)-DayLow(1))/DayLow(1))*100;
value2 = abs((DayHigh(2)-DayLow(2))/DayLow(2))*100;
value3 = abs((DayHigh(3)-DayLow(3))/DayLow(3))*100;
value4 = abs((DayHigh(4)-DayLow(4))/DayLow(4))*100;
value5 = abs((value1+value2+value3+value4)/4);
if c > c[500] and
c < (dayclose(1) * (1-(value5 * 0.001))) Then
Buy("콜");
------------------------------------------------------
value1 = data2(abs((DayHigh(1)-DayLow(1))/DayLow(1))*100);
value2 = data2(abs((DayHigh(2)-DayLow(2))/DayLow(2))*100);
value3 = data2(abs((DayHigh(3)-DayLow(3))/DayLow(3))*100);
value4 = data2(abs((DayHigh(4)-DayLow(4))/DayLow(4))*100);
value5 = data2(abs((value1+value2+value3+value4)/4));
if data2(c) > data2(c[500]) and
data2(c) < data2(dayclose(1)) * (1-(value5 * 0.001))
Then
Buy("상");
예스스탁
예스스탁 답변
2009-09-14 11:20:33
안녕하세요
예스스탁입니다.
주종목에서는 dayopen,dayhigh,daylow,dayclose를 사용하시고
참조종목에서는 openD,highD,LowD,CloseD함수를 사용하시기 바랍니다.
var : val1(0,data2),val2(0,data2),val3(0,data2),val4(0,data2),val5(0,data2);
val1 = data2(abs((HighD(1)-LowD(1))/LowD(1))*100);
val2 = data2(abs((HighD(2)-LowD(2))/LowD(2))*100);
val3 = data2(abs((HighD(3)-LowD(3))/LowD(3))*100);
val4 = data2(abs((HighD(4)-LowD(4))/LowD(4))*100);
val5 = data2(abs((val1+val2+val3+val4)/4));
if data2(c) > data2(c[500]) and
data2(c) < data2(closeD(1)) * (1-(val5 * 0.001))
Then
Buy("상");
또한 타종목의 값을 할당받는 변수는 따로 변수를 만드신 후에
선언하실 때 (0,data2)와 같이 선언해 주시면 이전값 참조시에 해당 타종목의
주기대로 이전값참조를 하게 됩니다.따로 (0)으로만 선언하시면 [1],[2]와 같은 이전값이 주종목의 주기로 참조하게 됩니다. 위에 수식에는 해당사항이 아니지만 참고하시기 바랍니다.
즐거운 하루되세요
> 님의침묵 님이 쓴 글입니다.
> 제목 : 님의침묵-수식수정요청
> 선물(data2)신호를 바탕으로 콜매수를 하려고 합니다.
아래가 선물 신호중 일부입니다.
그 아래가 콜옵션을 위해 변경한 수식인데요...
선물에서는 정상시뮬이 되는데, 콜옵션(두번째수식)에서는 작동을 안해요.
수식수정 부탁드립니다.
value1 = abs((DayHigh(1)-DayLow(1))/DayLow(1))*100;
value2 = abs((DayHigh(2)-DayLow(2))/DayLow(2))*100;
value3 = abs((DayHigh(3)-DayLow(3))/DayLow(3))*100;
value4 = abs((DayHigh(4)-DayLow(4))/DayLow(4))*100;
value5 = abs((value1+value2+value3+value4)/4);
if c > c[500] and
c < (dayclose(1) * (1-(value5 * 0.001))) Then
Buy("콜");
------------------------------------------------------
value1 = data2(abs((DayHigh(1)-DayLow(1))/DayLow(1))*100);
value2 = data2(abs((DayHigh(2)-DayLow(2))/DayLow(2))*100);
value3 = data2(abs((DayHigh(3)-DayLow(3))/DayLow(3))*100);
value4 = data2(abs((DayHigh(4)-DayLow(4))/DayLow(4))*100);
value5 = data2(abs((value1+value2+value3+value4)/4));
if data2(c) > data2(c[500]) and
data2(c) < data2(dayclose(1)) * (1-(value5 * 0.001))
Then
Buy("상");