답변완료
연속 매수 확인 좀 부탁 드립니다.
* 항상 많은 도움에 감사 드립니다.
* 요청사항
- 그림 에서 A~C 까지 3포인트 하락 마다 추가 매수가 잘되는데
D와 E가 매수가 안되야 하는데 매수가 됨니다.
- D와 E가 매수 안되게 수정 좀 요청 드립니다.
* 추가로 "하루 수익이 20틱 이상 이면 매매정지" 로직 좀 추가 부탁 드립니다.
<사진 참고>
## 수식
var1 = ma(c,5) ;
var2 = ma(c,20) ;
if MarketPosition == 0 and crossup(var1,var2) then buy("SS1",OnClose,DEF,1);
if MarketPosition == 0 and CrossDown(var1,var2) then Sell("DD1",OnClose,DEF,1);
if MarketPosition == 1 Then
{
if MaxEntries == 1 Then Buy("SS2",AtLimit,EntryPrice-3,1);
if MaxEntries == 2 Then Buy("SS3",AtLimit,LatestEntryPrice(0)-3,1);
if MaxEntries == 3 Then Buy("SS4",AtLimit,LatestEntryPrice(0)-3,1);
if MaxEntries == 4 Then Buy("SS5",AtLimit,LatestEntryPrice(0)-3,1);
ExitLong("SST",AtLimit,AvgEntryPrice+10);
}
if MarketPosition == -1 Then
{
if MaxEntries == 1 Then Sell("DD2",AtLimit,EntryPrice+3,1);
if MaxEntries == 2 Then Sell("DD3",AtLimit,LatestEntryPrice(0)+3,1);
if MaxEntries == 3 Then Sell("DD4",AtLimit,LatestEntryPrice(0)+3,1);
if MaxEntries == 4 Then Sell("DD5",AtLimit,LatestEntryPrice(0)+3,1);
ExitShort("DDT",AtLimit,AvgEntryPrice-10);
}
* 항상 많은 도움 고맙습니다.
2021-03-31
1270
글번호 147568
시스템
답변완료
문의 드립니다.
늘 감사합니다.
아래 수식에 청산식 추가 부탁드립니다.
진입 후 종가가 이전 30개봉 중 최저가 보다 내려가면 청산
input : P1(5),P2(20),금액(300000);
var : mav1(0),mav2(0),count(0),entry(0);
mav1 = ma(c,5);
mav2 = ma(C,20);
if Bdate != Bdate[1] Then
{
count = 0;
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if CrossUp(mav1,mav2) Then
count = count+1;
if entry < 1 and count >= 2 and CrossUp(c,mav2) Then
Buy("b",OnClose,DEf,Floor(금액/c));
2021-03-31
1212
글번호 147567
시스템
답변완료
감사 합니다, 부탁 드릴께요.
안녕 하세요~~지난 번 수식에 감사 드립니다.
당일 1번 조건.
max( avg(C,short), avg(C,mid), avg(C,long)) <
min( avg(C,short), avg(C,mid), avg(C,long)) * (1+Percent/100) &&
C > highest(H(1),5)
and
avg(V, 5) >= 5000
and
V > V(1) * Multiple
and
C > (highest(high,midPeriod)+lowest(low,midPeriod))/2
and
C > avg(C,60)
and
CrossUp(C,BBandsUp(20, 2))
지표변수는=
short 5
mid 20
long 60
percent 3
Multiple 1.5
midperiod 78
위에 1번 조건과 다음에 2번 조건에서
max( avg(C,short), avg(C,mid), avg(C,long)) <
min( avg(C,short), avg(C,mid), avg(C,long)) * (1+Percent/100) &&
C > highest(H(1),5)
and
avg(V, 5) >= 5000
and
V > V(1) * Multiple
and
C > (highest(high,midPeriod)+lowest(low,midPeriod))/2
and
C > avg(C,60)
and
CrossUp(C,BBandsUp(20, 2))
and
O*1.025 <= H
지표변수는 위에( 1번) 와 동일함.
위 두 조건이 만족 했을때
PredayClose() < C
and
avg(C(1),5) < avg(C(4),5)
and
avg(C(1),5) < avg(C,5)
and
C > avg( C,226)
and
C > avg( C,60)
and
avg(C,60) > avg(C(5),60)
and
C > (highest(high,midPeriod)+lowest(low,midPeriod))/2
지표변수는= midperiod 52
이 조건이 만족 되는 종목을 찾고 싶습니다.
*정리 하면, 1번 조건과 2번 조건이 나온 당일 에서 3번 조건이 완성 되는 종목을 찾고 싶습니다.
감사 합니다.
2021-03-31
1565
글번호 147564
종목검색
답변완료
다시 문의드립니다.
다시한번 문의드립니다.
1. 작성해주신 1번 수식에서
2시간봉 고저 현재값,직전값, 전전값(HH,HH1,HH2 / LL,LL1,LL2)을 구하고 싶어
아래와 같이 변경하였으나 plot5,plot6 값이 plot3, plot4와 같은 값을
보여줍니다. 어떻게 수식을 변경하면 2시간봉 전전 고저 값을 볼 수 있을까요?
input : ntime(120);
var : S1(0),D1(0),TM(0),TF(0);
var : HH(0),HH1(0),HH2(0),LL(0),LL1(0),LL2(0);
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%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
HH2 = HH[2];
LL2 = LL[2];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
plot1(HH,"최근120분봉고가",WHITE);
plot2(LL,"최근120분봉저가",WHITE);
plot3(HH1,"직전120분봉고가",YELLOW);
plot4(LL1,"최근120분봉저가",YELLOW);
plot5(HH2,"전전120분봉고가",GREEN);
plot6(LL2,"전전120분봉저가",GREEN);
}
2. 작성해주신 시스템 매수손절 수식을 아래의 조건으로 변경 부탁드립니다.
a. 매수: 현재 값이 지정한 값 이상(>=)이 될 경우 지정한 값에 즉시 매수
매수 청산: 지정한 값 + 100틱 터치하면 즉시 청산
매수 손절: 가격 하락해서 LL1값 터치하면 즉시 청산
b. 매도: 현재 값이 지정한 값 이하(<=)가 될 경우 지정한 값에 즉시 매도
매도 청산: 지정한 값 - 100틱 터치하면 즉시 청산
매도 손절: 가격 상승해서 HH1값 터치하면 즉시 청산
매수 진입한 상태에서 매도 진입조건을 만족하면 매수청산 또는 매수손절 후 즉시 매도진입(스위칭)
매도 진입한 상태에서 매수 진입조건을 만족하면 매도청산 또는 매도손절 후 즉시 매수진입(스위칭)
input : ntime(120);
var : S1(0),D1(0),TM(0),TF(0);
var : HH(0),HH1(0),LL(0),LL1(0);
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%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
#지정값 이하에 있다가 상승해 지정값을 터치하면 즉시 매수진입
if H < 지정값 Then
Buy("b",AtStop,지정값);
#가격이 하락해 HH1값을 터치하면 즉시 청산
if MarketPosition == 1 and L > HH1 Then
ExitLong("bx",AtStop,HH1);
}
답변 부탁드립니다.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1
해당 수식이 국내종목에 맞춰져 있는 수식입니다.
국내 해외 아래식 이용하시면 됩니다.
input : ntime(120);
var : S1(0),D1(0),TM(0),TF(0);
var : HH(0),HH1(0),LL(0),LL1(0);
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%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
plot1(HH,"최근120분봉고가",WHITE);
plot2(LL,"최근120분봉저가",YELLOW);
plot3(HH1,"직전120분봉고가");
plot4(LL1,"최근120분봉저가");
}
2
신호타입중에 atstop을 사용하시면 됩니다.
Buy에서 사용하면 지정한 값 이상의 시세 발생하면 즉시 신호
Sell에서 사용하먄 지정한 값 이하의 시세 발생하면 즉시 신호입니다.
input : ntime(120);
var : S1(0),D1(0),TM(0),TF(0);
var : HH(0),HH1(0),LL(0),LL1(0);
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%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
#지정값 이하에 있다가 상승해 지정값을 터치하면 즉시 매수진입
if H < 지정값 Then
Buy("b",AtStop,지정값);
#가격이 하락해 HH1값을 터치하면 즉시 청산
if MarketPosition == 1 and L > HH1 Then
ExitLong("bx",AtStop,HH1);
}
즐거운 하루되세요
> 7out 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요.
수식 작성 중 두 가지 궁금한 점 있어서 문의드립니다.
1.
1분 차트에서 2시간봉 고저 값 지표가 필요하여
게시판 검색을 통해 발견한 것을 사용하고 있습니다.
그런데 이 수식을 사용 시 한 가지 문제점이 발생하네요.
해외선물 기준 아침 7시부터 2시간씩 고저 값을 표시하면
다음날 아침 5시에서 7시 사이에는 고저 값은
아침 6시부터 7시까지 휴장시간이니
5시부터 6시까지(60분)의 고저 값을 표시해야 하는데
차트를 돌려보니 그렇지가 않네요.
참고로 차트 기준 시간은 서울(우리나라)시간으로 설정했습니다.
input : N(120);
var : TM(0),T1(0),TF(0);
var : HH(0),HH1(0),LL(0),LL1(0);
TM = TimeToMinutes(stime);
if date != date[1] Then
T1 = TM;
TF = (TM-T1)%N;
if date != date[1] or (date == date[1] and TF < TF[1]) Then{
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
plot1(HH,"최근120분봉고가",WHITE);
plot2(LL,"최근120분봉저가",YELLOW);
plot3(HH1,"직전120분봉고가");
plot4(LL1,"최근120분봉저가");
2. 시스템 수식 중에 현재 값이 지정한 값 이상(>=)이 될 경우
지정한 가격에 즉시 진입 가능하게 할 방법이 있을까요?
그리고 손절 가격 설정을 1분 차트 기준으로 진입 시 2시간전봉의 고가값
(예: 위의 지표 수식에서 진입 시점의 HH1 값)을 손절로 설정 할 수 있나요?
답변 부탁드립니다.
감사합니다.
2021-03-31
1092
글번호 147561
지표
답변완료
잔량컬러표기
수고많으십니다.
아래 내용의 잔량표기에 0선 위에는 연분홍색, 아래는 연소라색을 표기하고자 합니다. RGB 컬러 수치로 변경할 수 있도록 넣어주십시요,
감사드립니다. 꾸뻑
var : diff(0),dh(0),dl(0);
var : tx1(0),tx2(0),tx3(0),tx4(0);
diff = Bids-Asks;
if Bdate != Bdate[1] Then
{
dh = diff;
dl = diff;
#봉차트위 출력
tx1 = Text_New(sDate,sTime,H,"최고");
tx2 = Text_New(sDate,sTime,L,"최저");
Text_SetStyle(tx1,2,1);
Text_SetStyle(tx2,2,0);
#지표위 출력
tx3 = Text_New_Self(sDate,sTime,H,"최고");
tx4 = Text_New_Self(sDate,sTime,L,"최저");
Text_SetStyle(tx3,2,1);
Text_SetStyle(tx4,2,0);
}
if diff > dh Then
{
dh = diff;
Text_SetLocation(tx1,sDate,sTime,H);
Text_SetLocation(tx3,sDate,sTime,diff);
}
if diff < dl Then
{
dl = diff;
Text_SetLocation(tx2,sDate,sTime,L);
Text_SetLocation(tx4,sDate,sTime,diff);
}
Plot1(diff, "호가잔량");
Plot2(dh, "당일최고");
Plot3(dl, "당일최저");
PlotBaseLine1(0);
PlotBaseLine2(2000, " 2000");
PlotBaseLine3(3500, " 3500");
PlotBaseLine4(4000, " 4000");
PlotBaseLine5(-2000, " -2000");
PlotBaseLine6(-4000, " -4000");
PlotBaseLine7(-6000, " -6000");
2021-03-31
1063
글번호 147560
지표