답변완료
수식 문의
안녕하세요?
Fct1(g1, ...), ... Fct10(g10, ...) 이라는 꽤 복잡한 함수들이 있습니다.
게다가 Fct1 에는 g1 이라는 꽤 복잡한 녀석을 인수로 갖고, ...
Fct10은 g10 이라는 꽤 복잡한 녀석을 인수로 갖습니다.
input: a1(0), ... a10(0) // a1 ~ a10은 0 또는 자연수
var: sum(0);
g1 = 어쩌구 저쩌구 if 도 들어가고, {...} 들도 들어가고 열라 복잡.
g2 = 어쩌구 저쩌구 if 도 들어가고, {...} 들도 들어가고 열라 복잡.
...
g10 = 어쩌구 저쩌구 if 도 들어가고, {...} 들도 들어가고 열라 복잡.
sum = a1*Fct1 + ... + a10*Fct10;
을 계산하고 싶은데,
시스템의 부하를 줄이기 위해서 a1, ... a10 중 0이 아닌 경우에만 해당 Fct을 계산하고 싶습니다.
그러니까 a1 == 0 이면 g1 계산도 건너뛰고, Fct1 도 계산안하고 넘어가고 (말하자면 그냥 0 대입...)
a3 > 0 면 그 때에는 g3도 계산하고, Fct3도 계산하고, ...
뭐 이런 식으로 시스템 부하를 줄이고 싶습니다.
좋은 방법이 있겠습니까?
또 그러면 정말로 시스템 부하가 g1, Fct1 계산을 생략하는 것만큼 줄까요?
혹시, var1 ~ var99, value1 ~ value99 의 초기값이 0이란 것을 이용해서
계산량이나 시스템 부하를 줄일 수 있다면 이런 것들도 적극적으로 같이 사용해 주시기 바랍니다.
그러니까, 목표는 수단 방법을 안 가리고, 시스템 부하를 줄이는 것입니다.
위의 함수들 Fct1, ... Fct10이 내부에 또 함수들을 사용하는 등, 꽤나 복잡해서요,
몇 개라도 줄일 수 있다면 안정성 등에서 참 좋겠습니다.
감사합니다.
2021-02-02
818
글번호 146025
시스템
답변완료
엔벨로프 구간별 평가금액 리벨런싱으로 매매 수식 부탁드림니다.
먼저 항상 도움을 주셔서 감사드림니다.
국내주식: 예: 삼성전자
data1차트 : 일봉
진입일자: 2020년 01월 5일 ( 임의 지정예정 )
최초 진입 조건:
1) 진입일자 이후 --> 작성자가 일봉이 15일선 위에 있는 날로 임의 지정
2) 일봉이 15일선을 하향돌파시
3) 오전 10:00에 진입
4) 1000만원 진입
최초 진입이후는 다음과 같이 매수 매도 진행
매일 오전 10:00에 일봉의 위치가
Envelopeup(15,0~1) 일때 평가금액 1000만원이 되도록 매수 또는 매도
Envelopeup(15,1~3%) 일때 평가금액 800만원이 되도록 매수 또는 매도
Envelopeup(15,3~5%) 일때 평가금액 600만원이 되도록 매수 또는 매도
Envelopeup(15,5~7%) 일때 평가금액 400만원이 되도록 매수 또는 매도
Envelopeup(15,7~9%) 일때 평가금액 200만원이 되도록 매수 또는 매도
Envelopeup(15,9%초과시) 일때 평가금액 0만원이 되도록 매수 또는 매도
Envelopedown(15,0~1%) 일때 평가금액 1000만원이 되도록 매수 또는 매도
Envelopedown(15,1~3%) 일때 평가금액 1100만원이 되도록 매수 또는 매도
Envelopedown(15,3~5%) 일때 평가금액 1200만원이 되도록 매수 또는 매도
Envelopedown(15,5~7%) 일때 평가금액 1300만원이 되도록 매수 또는 매도
Envelopedown(15,7~9%) 일때 평가금액 1400만원이 되도록 매수 또는 매도
Envelopedown(15,9초과%) 일때 평가금액 1500만원이 되도록 매수 또는 매도
매일 10시에 위 조건으로 리벨런싱하는 수식 부탁드려요~~~
해당 수식이 실전에 반영되려면 챠트형식을 DATA1 일봉으로 해도 되나요?
아니면 위수식이 활성화될려면 어떤 차트형식으로 해야하나요?
2021-02-01
560
글번호 146022
시스템
답변완료
9:30 시작시... 같은질문입니다.
혹시몰라 요렇게 바꿔봤는데 여전합니다.
input : StartTime(93000),EndTime(153000);
var : Tcond(false,Data1);
var : C2(0,Data2);
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
{
#var : C2(0,Data2);
C2 = Data2(c);
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
}
SetStopEndofday(EndTime);
감사합니다 !!
2021-02-01
702
글번호 146017
시스템
답변완료
9:30부터 매매 시작시
현재 시뮬창 모습입니다.
그림1은
var : C2(0,Data2);
C2 = Data2(c);
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
으로 문제가 없습니다.
그림2가 9:30 되면 희안하게 sell 진입이 나오는데 고칠수있을까요?
신규신호만 진입하고 싶습니다.
input : StartTime(93000),EndTime(153000);
var : Tcond(false,Data1);
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
{
var : C2(0,Data2);
C2 = Data2(c);
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
}
SetStopEndofday(EndTime);
감사합니다 !!
2021-02-01
566
글번호 146016
시스템