답변완료
수식 질문드립니다.
아래 식에서 , 현재 봉 기준 이전봉이
c3가 연속 양봉 n 개 이면 sell 진입을 못하게하고,
c3가 연속 음봉 n 개 이면 buy 진입을 못하게 하고 싶습니다.
변수n 으로 시뮬레이션 돌려보고 싶습니다.
방법이 있을까요?
----------------------
input : StartTime(93000),EndTime(144000);
Input : shortPeriod(13), longPeriod(120), Period(3);
var : Tcond(false,Data1);
var : C2(0,Data2);
var : C3(0,Data3);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
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;
C2 = Data2(c);
C3 = Data3(c);
if Tcond == true Then
{
if data2(c) <= aaa and CrossUP(value1, value2) then
Buy();
if data2(c) >= bbb and CrossDown(value1, value2) then
Sell();
}
SetStopEndofday(EndTime);
2021-03-05
509
글번호 146814
시스템
답변완료
순차적 crossup 질문드립니다.
if crossup(c,0) and crossdown(c2,0) then sell ();
if crossdown(c,0) and crossup(c2,0) then buy ();
개략적인 취지는 이런데,,
문제는 시간 term 때문에,,,,
제 생각은,
crossup(c,0) 이 일어나면 condition1 상태로 지정
이후 crossdown(c,0) 이 일어나면 condition1상태를 해제하고 condition2 상태로 지정
다시 crossup(c,0) 이 일어나면 condition2 상태를 해제하고 condition1 상태로 지정
이후,
condition1 ==true and crossdown(c2,0) then sell();
condition2 ==true and crossup(c2,0) then buy();
요렇게 구현해보고 싶습니다.
가능하다면 부탁드립니다.
감사합니다!!!!
2021-03-05
627
글번호 146809
시스템
답변완료
수식관련 문의드립니다.
시스템 수식관련해서 도움을 받고자 문의를 드립니다.
제가 하고자하는 수식은 해외선물 나스닥 기준으로 단방향 (매수 혹은 매도) 매매만 하는
프로그램을 만들고자 하며 간단하게 규칙을 설명하자면 다음과 같습니다.
규칙1: MACD 골드 크로스가 나면 진입을 해라
규칙2: MACD 데드 크로스가 나면 매도를 하되 진입가격보다 일정수치 이상 높을 경우에만 매도해라 (익절만 하고 손절은 없음 데드크로스 떠도 손절위치면 그냥 물량 보유)
규칙3: 첫 번째 진입한 계약이 익절이 안되고 손절이나고 있는 상태면 첫번째 진입가격의 예를 들어 -500포인트 이하이면서 MACD 골드크로스가 뜨면 추가 매수를 해라
규칙4: 추가매수분에 대해 규칙2와 같이 데드크로스가 뜨면 매도를 하나 익절위치가 아니면 그냥 보유
이런식의 프로그램을 짜고 싶으며 이를 반영하기 위해 제가 짠 수식은 다음과 같습니다.
Input : shortPeriod(12), longPeriod(26), Period(9);
Var : MACDv(0), MACDsig(0),macdosc(0), Value1(0), value2(0), cnt(0) ;
MACDv = MACD(shortPeriod, longPeriod);
MACDsig = ema(MACDv,Period);
macdosc = MACDv-ema(MACDv,Period);
if crossup(MACDv,MACDsig) then {
BuY("첫쨰",AtLimit,c);
Value1=c;
}
if isentryname("첫쨰") and CrossDown(MACDv,MACDsig) then
ExitLong("청산1",AtLimit,EntryPrice+30);
if MarketPosition == 1 and crossup(MACDv,MACDsig) and c < EntryPrice(1)-500 then {
BuY("둘쨰",AtLimit,c);
Value2=c;
}
if isentryname("둘쨰") and CrossDown(MACDv,MACDsig) then
ExitLong("청산2",AtLimit,EntryPrice+10);
현재 시뮬레이션 돌려보면 두번째 진입까지는 진행이되는것 같은데 두번째 진입이
첫번째 청산규칙위치에서 계속 매도가 되는 것 같아 전체적인 수식점검을 해주시면
감사하겠습니다.
2021-03-05
780
글번호 146806
시스템