답변완료
수식 수정 부탁드립니다
안녕하세요
아래 수식에 로스컷 3회 연속 걸리면 매매정지가 되도록 돼 있습니다
문제점은 '23시 이후 로스컷이 될 경우 경우 익일 오전 7시가 되어야 매매를 재개'한다는 것 입니다
항상 감사합니다
----
input : T(1),N(4),조건(2),매수전략(2),매도전략(0),매수기간(10),매도기간(0),매수청산(5),매도청산(0),매수트레일링스탑사용(0),매수트레일링스탑(0),매도트레일링스탑사용(0),매도트레일링스탑(0),매수로스컷위치(0),매도로스컷위치(0),손절(0);
input : 플러스매도청산(0),마이너스매수청산(0),제로매수청산(0),제로매도청산(0),StartTime(070000),EndTime(070000),로스컷횟수(3),매매정지(10),매수포인트(0),매도포인트(0);
var : LL(0),HH(0),최저가(0),최고가(0),cnt(0),sum(0),CL(0),CS(0),Lss(0),S(false),acounting(0),TS_L(0),TS_S(0),first(false),second(false);
var : Tcond(false),S1(0),D1(0),TM(0),b_vv(0),losscut_point(0),hhh(0),lll(0);
Array : VV[20](0);
if 조건 == 1 then
{
Condition1 = L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2] and min(L[2],L[1],L) == L[2];
Condition2 = H[4]<H[3] and H[3]<H[2] and L<L[1] and L[1]<L[2] and max(H[2],H[1],H) == H[2] ;
}
else if 조건 ==2 then
{
Condition1 = L[4]>L[2] and H>H[2] and min(L[4],L[3],L[2],L[1],L) == L[2];
Condition2 = H[4]<H[2] and L<L[2] and max(H[4],H[3],H[2],H[1],H) == H[2] ;
}
if ( ( var2 == 0 and C > hh and vv[0] == -1 ) or LL == 0 or (CL !=0 and C > CL) ) and condition1 == true and Condition1[1] == False Then
{
var1 = var1+1;
LL = L[2];
CL = C;
CS = 0;
if 매수트레일링스탑사용 == 1 then
TS_L = L[매수트레일링스탑];
else
TS_L = 0;
if acounting <= 0 then
acounting = 1;
else
acounting = acounting + 1;
VV[0] = 1;
For cnt = 1 to 19
{
VV[cnt] = VV[cnt-1][1];
}
if VV[N-1] != 0 Then
{
sum = 0;
For cnt = 0 to N-1
{
sum = sum + VV[cnt];
}
}
}
else
{
if L < LL Then
{
var1 = 0;
}
}
if (( var1 == 0 and C < ll and vv[0] ==1) or hh == 0 or (CS != 0 and C < CS) ) and condition2 == true and Condition2[1] == False Then
{
var2 = var2+1;
HH = H[2];
CS = C;
CL = 0;
if 매도트레일링스탑사용 == 1 then
TS_S = H[매도트레일링스탑];
else
TS_S = 0;
if acounting >= 0 then
acounting = -1;
else
acounting = acounting - 1;
VV[0] = -1;
For cnt = 1 to 19
{
VV[cnt] = VV[cnt-1][1];
}
if VV[N-1] != 0 Then
{
sum = 0;
For cnt = 0 to N-1
{
sum = sum + VV[cnt];
}
}
}
Else
{
if H > HH Then
{
var2 = 0;
}
}
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
Condition4 = False;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
}
#청산이 이루어질 때마다 아래와 같이 진행
if TotalTrades > TotalTrades[1] Then
{
Condition4 = False;
losscut_point ==0;
TS_L = 0;
TS_S = 0;
#3회 연속손실 여부
if PositionProfit(1) < 0 Then
Lss = Lss+1;
Else
Lss = 0;
if lss >= 로스컷횟수 Then
{
Condition4 = true;
Lss = 0;
}
}
#최근을 제외한 이전 4개 포인트 합
b_vv = vv[4]+vv[3]+vv[2]+vv[1];
#새로운 포인트가 나왔는지 확인하는 수식
if acounting != acounting[1] then
S = true;
else
S = false;
#매매조건
condition5 = sum >= 매수포인트 and vv[0] == 1; #매수조건
condition6 = sum <= 매도포인트 and vv[0] == -1; #매도조건
#돌파매수기준점
hhh = Highest(h,매수기간);
lll = Lowest(l,매도기간);
#거래시간 설정
if T == 0 Then
Condition7 = (sTime > starttime and sTime < Endtime);
Else if T == 1 Then
Condition7 = (sTime > starttime or sTime < Endtime);
#정해진 매매시간에 포지션이 없으면
if condition7 == true Then
{
if 매수전략 !=0 and 매수전략 == 1 then
{
#매수조조건에 만족하고 새로운 포인트가 나왔으며 최근봉 저가와 종가가 다르면
if condition5 == true and S == true and L != C then
{ #3번연속 손실이 발생했는지 확인
if condition4 == false then
{
Buy("1전략매수");
S = False;
if marketposition == 0 then
{
losscut_point = L[매수로스컷위치];
}
}
if condition4 == true and TM >= TM[BarsSinceExit(1)]+ 매매정지 Then
{
Buy("1전략매수2");
S = False;
if marketposition == 0 then
{
losscut_point = L[매수로스컷위치];
}
}
}
}
if 매도전략 !=0 and 매도전략 == 1 then
{
#매도조건에 만족하고 새로운 포인트가 나왔으며 최근봉 고가와 종가가 다르면
if condition6 == true and S == true and H != C then
{ #3번연속 손실이 발생했는지 확인
if condition4 == false then
{
sell("1전략매도");
S = False;
if marketposition == 0 then
{
losscut_point = H[매도로스컷위치];
}
}
if condition4 == true and TM >= TM[BarsSinceExit(1)]+ 매매정지 Then
{
sell("1전략매도2");
S = False;
if marketposition == 0 then
{
losscut_point = H[매도로스컷위치];
}
}
}
}
#전략2 실행
if 매수전략 != 0 and 매수전략 == 2 then
{
#매수조건을 만족하면
if condition5 == true then
{ #3번연속 손실이 발생했는지 확인
if condition4 == false and C > hhh[1] then
{
buy("돌파매수");
}
if condition4 == true and C > hhh[1] and TM >= TM[BarsSinceExit(1)]+ 매매정지 Then
{
buy("돌파매수2");
}
}
}
if 매도전략 != 0 and 매도전략 == 2 then
{
#매도조건을 만족하면
if condition6 == true Then
{ #3번연속 손실이 발생했는지 확인
if condition4 == false and C < lll[1] Then
{
sell("돌파매도");
}
if condition4 == true and C < lll[1] and TM >= TM[BarsSinceExit(1)]+ 매매정지 Then
{
sell("돌파매도2");
}
}
}
}
#청산조건
if marketposition > 0 then
{
if 매수전략 == 1 then
{ if sum ==0 and b_vv == 2 and 제로매수청산 == 1 Then
ExitLong("0포인트 매수청산");
if vv[0] == -1 and 마이너스매수청산 == 1 Then
Exitlong("'-1' 매도청산");
ExitLong("매수로스컷",atstop,losscut_point);
If 매수트레일링스탑사용 == 1 then
Exitlong("매수트레일링스탑",atstop,TS_L);
}
if 매수전략 == 2 then
{
if 매수청산 != 0 then
ExitLong("돌파매수청산",atstop,Lowest( Low ,매수청산));
}
}
if MarketPosition < 0 then
{
if 매도전략 == 1 then
{ if sum ==0 and b_vv == -2 and 제로매도청산 == 1 Then
Exitshort("0포인트 매도청산");
if vv[0] == 1 and 플러스매도청산 == 1 Then
ExitShort("'+1' 매도청산");
Exitshort("매도로스컷",atstop,losscut_point);
If 매도트레일링스탑사용 == 1 then
Exitshort("매도트레일링스탑",atstop,TS_S);
}
if 매도전략 == 2 then
{
if 매도청산 != 0 then
ExitShort("돌파매도청산",atstop,Highest( High ,매도청산));
}
}
#타겟청산
SetStopLoss( 손절 ,PointStop);
2021-05-12
1358
글번호 148917
시스템
답변완료
수식 요청 드립니다.
안녕하세요.
1. 연결선물 당일청산 다수의 진입과 스위칭 또는 청산을 반복하는 분봉 시스템에서
매수 - 매도신호 발생 후 다음봉에 매수 신호가 연속 발생시 매수진입
매도 - 매수신호 발생 후 다음봉에 매도 신호가 연속 발생시 매수진입
진입수식(예제)의 진입신호가 1봉 이내 연속 반대신호일 인경우만 진입,
1봉 이상에서 신호발생시 진입금지하는 수식 요청 드립니다.
작성해주신 수식적용시 진입 신호가 없어서 오늘 조건에 맞는 1분봉 차트 매도조건(매수는 반대)
예제수식으로 재요청 드립니다. 가능하면 패스되는 신호도 차트에서 보이도록 해주세요.
#진입수식(신호조건 예제)
var : EMA1(0),EMA2(0);
EMA1= ema(ema(ema(c,2),2),2);
EMA2 = ema(ema(ema(c,4),4),4);
if CrossDown(EMA1,EMA2) Then{
Sell("S");
}
if CrossUP(EMA1,EMA2) Then{
Buy("B");
}
//----------------------------------------------------------------------
안녕하세요
예스스탁입니다.
Input : Period(12), sigPeriod(9);
var : Bidx(0),Sidx(0);
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
If CrossUP(value1, value2) and Index == Sidx+1 Then
{
Buy("b");
bidx = Index;
}
If CrossDown(value1, value2) and Index == Bidx+1 Then
{
Sell("s");
Sidx = Index;
}
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식 요청 드립니다.
> 안녕하세요.
1. 연결선물 당일청산 다수의 진입과 스위칭 또는 청산을 반복하는 분봉 시스템에서
매수 - 매도신호 발생 후 다음봉에 매수 신호가 연속 발생시 매수진입
매도 - 매수신호 발생 후 다음봉에 매도 신호가 연속 발생시 매수진입
진입수식(예제)의 진입신호가 1봉 이내 연속 반대신호일 인경우만 진입,
1봉 이상에서 반대 신호발생시 진입금지하는 수식 요청 드립니다.
#진입수식(예제)
Input : Period(12), sigPeriod(9);
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then{
Sell();
}
2021-05-11
1305
글번호 148915
시스템
답변완료
수식검증 부탁드려요
그림에서 처럼
침체구간 이후
저점이 높아지는 구간에서
K선이 D선을 돌파하는 순간을
종목검색으로 찾고 싶어서
수식을 만들어 봤는데
종목검색이 안되네요,,
저번에 부탁드린 수식에서
급등신호를 빼고
만들면 될줄 알았는데
검색이 안돼요
수정 부탁드려요,,
Input : sto1(12), sto2(5), sto3(5);;
var : stok(0),stod(0),T(0),L1(0),L2(0);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
if stok > stok[1] Then
T = 1;
if stok < stok[1] Then
T = -1;
#상승전환
if T == 1 and T != T[1] Then
{
L1 = stok[1];
L2 = L1[1];
}
if T == 1 and L1 > L2 and L2 <= 20 and L2 > 0 and (Condition1 == true or Condition2 == true) Then
{
T = 2;
Find(1);
}
2021-05-11
1319
글번호 148905
종목검색
답변완료
수식작성
input : P1(5),P2(20);
input : sto1(12),sto2(26),sto3(5);
Input : trixp(12), sigPeriod(9);
INPUTS: LENGTH(5);
input : short(12),long(26),sig(9);
input : StartTime(183000),EndTime(035000);
var : Tcond(false);
var : mav1(0),mav2(0),stok(0),stod(0);
var : trixv(0),trixs(0),TEMA(0),macdo(0);
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
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;
SetStopEndofday(0);
}
mav1 = ma(C,P1);
mav2 = ma(C,P2);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
trixv = trix(trixp);
trixs = ema(trixv,sigPeriod);
TEMA = (3 * Ema(c,LENGTH)) - (3 * Ema(Ema(c,LENGTH),LENGTH)) +
(Ema(Ema(Ema(c,LENGTH),LENGTH),LENGTH));
macdo = macd_osc(short,long,sig);
var1 = 0;
var2 = 0;
if stok > stod Then
var1 = var1+1;
if trixv > trixs Then
var1 = var1+1;
if c > tema Then
var1 = var1+1;
if macdo > 0 Then
var1 = var1+1;
if stok < stod Then
var2 = var2+1;
if trixv < trixs Then
var2 = var2+1;
if c < tema Then
var2 = var2+1;
if macdo < 0 Then
var2 = var2+1;
if Tcond == true Then
{
if crossup(mav1,mav2) and var1 >= 3 Then
buy();
if CrossDown(mav1,mav2) and var2 >= 3 Then
sell();
}
------------------------------
위 수식어의 매매시간을 2가지로 분리하고자 합니다
18시부터 ~ 22시 30분까지로 청산은 22시 30분이며
23시부터 ~ 익일05시 까지로 청산은 05시 입니다.
늘 감사드립니다.
2021-05-11
1311
글번호 148897
시스템
답변완료
지표 문의
Input : Period(20), Period1(10), Period2(10),TargetUpLevel(80),TargetDnLevel(20);
var:LowValue(0),HighValue(0),fstK(0),stoK(0),stoD(0),EP1(0),EP2(0);
EP1 = 2/(Period1 + 1);
EP2 = 2/(Period2 + 1);
LowValue = lowest(L,Period);
HighValue = highest(H,Period);
fstK = (C - LowValue)/(HighValue - LowValue) * 100;
stoK = Ema(fstK,Period1);
stoD = Ema(stoK,Period2);
plot1(stok);
plot2(stod);
일봉/ 주봉 데이타를 분봉에 적용하고 싶습니다.
2021-05-11
1051
글번호 148896
지표