예스스탁
예스스탁 답변
2021-06-10 15:54:48
안녕하세요
예스스탁입니다.
1
선물만기후 달력상 날짜로 n일 뒤부터 신호가 발생하는 내용입니다.
휴일포함 날짜수로 지정해 주셔야 합니다.
input : n(5);
Var : Year(0),Month(0),ndate1(0),Xdate1(0);
var : cnt(0),count1(0);
var : Trade(False);
Year = Floor(sDate / 10000)*10000;
month = Floor(FracPortion(sdate/10000)*100);
if Bdate != bdate[1] Then
{
Trade = true;
if month%3 == 0 Then
{
Trade = False;
ndate1 = year+(month*100)+1;
count1 = 0;
for cnt = 0 to 15
{
if dayofweek(ndate1+cnt) == 4 Then
{
count1 = count1+1;
if count1 == 2 Then
{
Xdate1 = ndate1+cnt;
}
}
}
IF DateToJulian(Bdate) <= DateToJulian(Xdate1) or
DateToJulian(Bdate) >= DateToJulian(Xdate1)+n Then
Trade = true;
}
}
if Trade == true Then
{
진입청산수식
}
2
매도포지션쪽도 동일조건으로 추가해 드립니다.
불필요 하시면 삭제하시면 됩니다.
input : 익절틱수(50);
var : mav1(0,Data1),mav2(0,Data1);
var : idx(0,Data3),idx1(0,Data3),cnt(0,data3),vv(0,data3);
mav1 = Data1(ma(C,5));
mav2 = Data1(ma(C,10));
if Data2(Bdate != Bdate[1]) Then
{
idx = Data3(Index);
idx1 = idx[1];
}
VV = 0;
if idx1 > 0 Then
{
For cnt = Data3(Index)-idx+1 to data3(Index)-idx1
{
if Data2(bDate[cnt] < bDate) and sTime[cnt] <= sTime Then
VV = Data2(C[cnt]);
}
}
if MarketPosition == 1 Then
{
if data1(mav1 > mav2) or
Data1(CountIf(OI>Oi[1],3) == 3) or
data3(c) >= VV*1.15 Then
ExitLong("bx1",AtLimit,EntryPrice+abs(Data2(c)-EntryPrice));
Else
ExitLong("bx2",AtLimit,EntryPrice+1);
}
if MarketPosition == -1 Then
{
if data1(mav1 > mav2) or
Data1(CountIf(OI>Oi[1],3) == 3) or
data3(c) >= VV*1.15 Then
ExitShort("sx1",AtLimit,EntryPrice-abs(Data2(c)-EntryPrice));
Else
ExitShort("sx2",AtLimit,EntryPrice-1);
}
즐거운 하루되세요
> 칭기스칸 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 수고 많으십니다.
계속 오류가 나서
아래 수식 좀 부탁드립니다.
1. 선물 만기일 후 x일 동안을 제외한 날만 매도 진입
2. setstopprofittarget 청산 목표수익값에
아래 조건 반영
조건: ㄱ. 5이평이 10이평 위일 때
ㄴ. 미결제 약정이 3봉 연속으로 커질 때
ㄷ. 참조지표(5분봉) data3 개인순매수수량이 전일 동시간대보다 15% 많을 때
목표수익값:
위 조건들 중 하나라도 충족할 때는 10분봉 차트에서 참조 data2 5분봉의 종가와 현재 진입가격과의 차이.
위 조건 모두 불충족시 목표수익값은 1 포인트.
제가 짤 때는 코딩 오류는 안 나는데, 실제 차트에 적용시키면 다른 결과가 나와서요.
실제로 잘 작동되는 거 확인까지 해서 좀 부탁드리겠습니다.
감사합니다~