답변완료
답변 주신글에서 조건을 하나더 추가부탁합니다.
강제청산 조건에서 매수나 매도 진입 시점 이후부터 20봉의 최저가나 최고가가 발생할 경우 청산조건이 발동하게 하려면 어떻게 해야하나요?
현재 조건은 매수, 매도 진입 시점과 상관없이 청산이 나오고 있습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 시스템 수식 부탁합니다.
>
안녕하세요
예스스탁입니다.
input : short(12),long(26),sig(9);
var : macdv(0),macds(0);
macdv = macd(short,long);
macds = ema(macdv,sig);
if MarketPosition <= 0 and CrossUp(macdv,macds) Then
Buy();
if MarketPosition >= 0 and CrossDown(macdv,macds) Then
Sell();
if MarketPosition == 1 Then
ExitLong("bx",AtStop,lowest(L,20)-PriceScale*5);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,highest(H,20)+PriceScale*5);
SetStopLoss(PriceScale*100,PointStop);
SetStopProfittarget(PriceScale*150,PointStop);
즐거운 하루되세요
> 하늘만큼11 님이 쓴 글입니다.
> 제목 : 시스템 수식 부탁합니다.
> 매수 : MACD 가 SIGNAL 상향돌파
매도 : MACD 가 SIGNAL 하향돌파
매수 강제청산 : 현재봉을 포함하여 20봉중 "최저가격"보다 5틱 이하시 청산
매도 강제청산 : 현재봉을 포함하여 20봉중 "최고가격"보다 5틱 이상시 청산
손절 : 진입가격대비 -100틱 청산
익절 : 진입가격대비 +150틱 청산
2024-08-12
819
글번호 182471
시스템
답변완료
수식추가
input : BBP(20),dv(2),ntime1(60),P1(5);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0),bbup(0);
Array : CC[100](0);
var1 = ma(C,BBP);
bbup = BollBandUp(BBP,dv);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime1 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or
(Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
CC[cnt] = CC[cnt-1];
}
}
CC[0] = C;
if CC[P1-1] > 0 then
{
sum1 = 0;
for cnt = 0 to P1-1
{
sum1 = sum1+CC[cnt];
}
mav1 = sum1/P1;
if CrossUp(c,var1) and CountIf(CrossDown(c,var1),30) >= 1 and
C > O and C > mav1 Then
Buy();
if MarketPosition == 1 and CountIf(H>=bbup,BarsSinceEntry) >= 1 and CrossDown(c,ma(C,5)) Then
ExitLong();
}
}
매도식도 부탁드림니다
2024-08-12
872
글번호 182466
시스템
답변완료
질문 2가지 드리겠습니다
수고하십니다 질문 2가지가 있는데요
1) 수식에 대한 해석을 부탁드립니다
input : period2(5);
var : T(0),TL1(0),TL2(0);
var1 = ma(asks,period2);
Var2 = ma(bids,period2);
if CrossUp(var1,Var2) Then
{
T = 1;
value1 = 0;
Value2 = 0;
}
Else if CrossDown(var1,var2) Then
{
T = -1;
value1 = 0;
Value2 = 0;
}
Else
{
if value1 == 0 or (value1 > 0 and H > value1) Then
value1 = h;
if value2 == 0 or (value2 > 0 and L < value2) Then
value2 = L;
}
if value1 > 0 and Value2 > 0 Then
{
Plot1(value1);
plot2(Value2);
}
이러한 수식이 있는데 주석을 요청해도 될까요 ?
조건에 따라서 t 에 1과 -1을 할당을 했는데 어디에 쓰이는건지 모르겠습니다. 크로스업을 할때 1이고 크로스다운이 -1. 그 후로는 더이상 언급이 안되네요? 그리고 크로스업이거나 크로스다운일때 둘다 value 1 과 value 2 에 0이 들어가는것과 뒤에서 value1=0 or (value > 0 and h>value1 )이 부분도 이해가 잘 안갑니다.
수식 마지막에 plot 할때 if value1>0 혹은 var1>0 이런 조건이 항상 보이는데 어떤 의미인지 궁금합니다. 플롯하기전에 왜 0 이상이라는 조건이 들어가는지 여쭤보고 싶습니다.
질문2)
알려주신 주봉이평 수식을 분봉에서 적용해봤는데요
주간 차트에서 5, 20, 60 ma 를 적용하고
분봉에서 이 수식을 적용해서 비교를 해봤는데 매칭이 안됩니다
분봉에서는 사용이 안되나요??? 감사합니다
이하 수식
주봉 이평
input : P1(5),prev1(0);
input : P2(10),prev2(0);
input : P3(20),prev3(0);
input : P4(60),prev4(0);
input : P5(120),prev5(0);
input : P6(240),prev6(0);
var : cnt(0);
var : sum1(0),mav1(0);
var : sum2(0),mav2(0);
var : sum3(0),mav3(0);
var : sum4(0),mav4(0);
var : sum5(0),mav5(0);
var : sum6(0),mav6(0);
Array : CC[300](0);
if DayOfWeek(Bdate)< DayOfWeek(Bdate[1]) Then
{
for cnt = 1 to 99
{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P1-1+prev1] > 0 Then
{
sum1 = 0;
for cnt = prev1+0 to prev1+P1-1
{
sum1 = sum1+CC[cnt];
}
mav1 = sum1/P1;
plot1(mav1);
}
if CC[P2-1+prev2] > 0 Then
{
sum2 = 0;
for cnt = prev2+0 to prev2+P2-1
{
sum2 = sum2+CC[cnt];
}
mav2 = sum2/P2;
plot2(mav2);
}
if CC[P3-1+prev3] > 0 Then
{
sum3 = 0;
for cnt = prev3+0 to prev3+P3-1
{
sum3 = sum3+CC[cnt];
}
mav3 = sum3/P3;
plot3(mav3);} 이하생략
2024-08-12
964
글번호 182450
지표
답변완료
문의 드립니다.
input : Periods(10),Multiplier(3.0),changeATR(true),showsignals(true),highlighting(true);
var : src(0),ATr2(0),ATrv(0),upv(0),up1(0),dnv(0),dn1(0);
var : trend(0),tx(0);
src = (h+l)/2;
atr2 = ma(TrueRange, Periods);
atrv = iff(changeATR , atr(Periods) , atr2);
upv = src-(Multiplier*atrv);
up1 = iff(IsNaN(upv[1]) == False,upv[1],upv);
upv = iff(close[1] > up1 , max(upv,up1) , upv);
dnv =src+(Multiplier*atrv);
dn1 = iff(isnan(dnv[1]) == False,dnv[1], dnv);
dnv = iff(close[1] < dn1 , min(dnv, dn1) , dnv);
trend = 1;
trend = iff(IsNaN(trend[1]) == False,trend[1], trend);
trend = iff(trend == -1 and close > dn1 , 1 , IFf( trend == 1 and close < up1 , -1 , trend));
if trend == 1 Then
{
plot1(upv,"UpTrend",green);
NoPlot(2);
if trend == 1 and trend[1] == -1 Then
{
tx = Text_New(sDate,sTime,upv,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Red);
}
}
Else
{
NoPlot(1);
plot2(dnv, "Down Trend",red);
if trend == -1 and trend[1] == 1 Then
{
tx = Text_New(sDate,sTime,dnv,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Blue);
}
}
위 수식에서 업트렌드에서 다운트렌드로,
다운트렌드에서 업트렌드로 바뀔때 신호가 나오게 좀 해주세요.
2024-08-12
1002
글번호 182444
시스템