커뮤니티

서식 부탁드립니다

프로필 이미지
dkfvkrh7
2019-10-10 20:52:48
184
글번호 132674
답변완료
수고하십니다 서식이 잘 해결되지 않아서 두가지 문의 드립니다 1번은 9시 장시작시 미결재약정의 "시작수량 - 현재수량"의 차감수량을 활용하여 아래와 같이 서식을 작성하였는데 "함수만이 입력값을 가질수 있습니다" 하고 오류발생 하였습니다 2번은 미결재약정 파라볼릭인데 9시 장시작시 미결재약정의 "현재수량 - 장시작수량"의 차감수량으로 파라볼릭 적용하려 하는데 연결지수를 "분,틱,봉을 금일분만 적용"하여 2번서식을 적용하면 미결재 잔량선이 파라볼릭 선을 상향돌파하거나 하향돌파하여도 파라볼릭선이 반대로 꺽어지지 않고 처음 향한 방향으로 한방향으로만 일직선으로 나갑니다 시간이 2~3시간 지나면 정상작동하기도 합니다 "분,틱,봉을 금일분만 적용"하지 않거나 현재수량에서 장시작수량을 차감하지 않고 현재수량만 적용하면 정상작동 합니다 장시작수량을 차감하는것 때문에 오류가 나는것 같습니다 여러가지 부탁드려 죄송합니다 감사합니다 1번 입니다 input : bv(1000); var : OIV(0); OIV = Oi; if OIV(C) - OIV(OPEN) > bv Then buy("매수"); if OIV(C)- OIV(OPEN) < - bv Then Sell("매도"); 2번 입니다 Input : AF(0.02), AFMAX(0.2), period(2),p(2),bv(0); Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0); OIV = Oi - bv(장시작수량) ; if OI == 0 Then OIV = Oi[1]; if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV > HighValue then { HighValue = OIV; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if OIV < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = OIV; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV < LowValue then { LowValue = OIV; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if OIV > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = OIV; } } CSarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV > HighValue then { HighValue = OIV; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV < LowValue then { LowValue = OIV; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } CSarv = SAR_Value; } else { if Direction == 0 then { if OIV > OIV[1] then Direction = 1; else if OIV < OIV[1] then Direction = -1; } else { if Direction == 1 then { if OIV < OIV[1] then { Direction = -1; SAR_Value = HighValue; CSarv = SAR_Value; } } if Direction == -1 then { if OIV > OIV[1] then { Direction = 1; SAR_Value = LowValue; CSarv = SAR_Value; } } } LowValue = min(OIV, LowValue); HighValue = max(OIV, HighValue); } } if (OIV > CSARV) Then buy("신규"); if (OIV < CSARV) Then sell("청산");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-10-11 09:55:56

안녕하세요 예스스탁입니다. 변수에 (c)나 (open)을 추가해서 해당 변수의 시가값이나 종가값을 가져올수 없습니다. 문법에 맞지 않는 내용입니다. 또한 미결제약정이나 거래량 관련데이타는 시가시점의 값이 없습니다. 모두 각봉의 종가 시점의 값만 리턴받아 사용할수 있습니다. 아래와 같이 첫봉종가시점의 값을 저장해서 현재가와 비교하시거나 var : OIV(0),OI1(0),diff(0); OIV = Oi; #첫봉완성시 미결제약정 if bdate != bdate[1] Then OI1 = OIV; #첫봉값과 현재봉값 차이 diff = OI-OI1; 현재미결과 전일종가값을 차감해 사용하사셔야 합니다. 일반적으로는 아래계산을 많이 사용하는 편입니다. var : OIV(0),OI1(0),diff(0); OIV = Oi; #첫봉값과 전일마지막값 차이 diff = OI-dayOI(1); 즐거운 하루되세요 > dkfvkrh7 님이 쓴 글입니다. > 제목 : 서식 부탁드립니다 > 수고하십니다 서식이 잘 해결되지 않아서 두가지 문의 드립니다 1번은 9시 장시작시 미결재약정의 "시작수량 - 현재수량"의 차감수량을 활용하여 아래와 같이 서식을 작성하였는데 "함수만이 입력값을 가질수 있습니다" 하고 오류발생 하였습니다 2번은 미결재약정 파라볼릭인데 9시 장시작시 미결재약정의 "현재수량 - 장시작수량"의 차감수량으로 파라볼릭 적용하려 하는데 연결지수를 "분,틱,봉을 금일분만 적용"하여 2번서식을 적용하면 미결재 잔량선이 파라볼릭 선을 상향돌파하거나 하향돌파하여도 파라볼릭선이 반대로 꺽어지지 않고 처음 향한 방향으로 한방향으로만 일직선으로 나갑니다 시간이 2~3시간 지나면 정상작동하기도 합니다 "분,틱,봉을 금일분만 적용"하지 않거나 현재수량에서 장시작수량을 차감하지 않고 현재수량만 적용하면 정상작동 합니다 장시작수량을 차감하는것 때문에 오류가 나는것 같습니다 여러가지 부탁드려 죄송합니다 감사합니다 1번 입니다 input : bv(1000); var : OIV(0); OIV = Oi; if OIV(C) - OIV(OPEN) > bv Then buy("매수"); if OIV(C)- OIV(OPEN) < - bv Then Sell("매도"); 2번 입니다 Input : AF(0.02), AFMAX(0.2), period(2),p(2),bv(0); Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0); OIV = Oi - bv(장시작수량) ; if OI == 0 Then OIV = Oi[1]; if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV > HighValue then { HighValue = OIV; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if OIV < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = OIV; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV < LowValue then { LowValue = OIV; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if OIV > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = OIV; } } CSarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV > HighValue then { HighValue = OIV; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if OIV < LowValue then { LowValue = OIV; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } CSarv = SAR_Value; } else { if Direction == 0 then { if OIV > OIV[1] then Direction = 1; else if OIV < OIV[1] then Direction = -1; } else { if Direction == 1 then { if OIV < OIV[1] then { Direction = -1; SAR_Value = HighValue; CSarv = SAR_Value; } } if Direction == -1 then { if OIV > OIV[1] then { Direction = 1; SAR_Value = LowValue; CSarv = SAR_Value; } } } LowValue = min(OIV, LowValue); HighValue = max(OIV, HighValue); } } if (OIV > CSARV) Then buy("신규"); if (OIV < CSARV) Then sell("청산");