답변완료
수식 조금 수정부탁드립니다.
박스의 시작이 정각 9시가 아니라
개장시간을 시작으로 8시 45분 / 9시 15분..... 30분봉 박스가 만들어지게 부탁드립니다.
input : 타주기분(30);
var : S1(0),D1(0),TM(0),TF(0);
var : DD(0),TT(0),OO(0),HH(0),LL(0),CC(0),CC1(0),clr(0);
var : box(0),box1(0),box2(0),TL(0),TL1(0),TL2(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(80000);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
DD = sDate;
TT = sTime;
OO = O;
HH = H;
LL = L;
CC1 = CC[1];
box = Box_New(DD,TT,HH,NextBarSdate,NextBarStime,LL);
box1 = box[1];
box2 = box1[1];
Box_Delete(Box2);
if CC > OO Then
clr = LightPink;
Else
clr = Lime;
Box_SetColor(Box,clr);
Box_SetStyle(box,3);
Box_SetFill(Box,true);
TL = TL_New(DD,TT,(HH+LL)/2,NextBarSdate,NextBarStime,(HH+LL)/2);
TL_SetExtRight(TL,true);
TL_SetColor(TL,clr);
TL_SetSize(TL,1);
TL1 = TL[1];
TL2 = TL1[1];
TL_Delete(TL2);
}
Else
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
CC = C;
if CC > OO Then
clr = Pink;
Else
clr = Green;
Box_SetBegin(Box,DD,TT,HH);
Box_SetEnd(Box,sDate,sTime,LL);
Box_SetColor(Box,clr);
TL_SetBegin(TL,DD,TT,(HH+LL)/2);
TL_SetEnd(TL,sDate,sTime,(HH+LL)/2);
#중심선색
TL_SetColor(TL,clr);
}
}
2024-10-05
943
글번호 183969
지표
답변완료
매수 매도 시스템 구현문의
키움에서의 매수 : z=c>o and c> highest(c(1),10) and
avg(c,5)>avg(c,5,1) and c>avg(c,5);
z
키움에서의 매도 : z=c<o and c< lowest(c(1),10) and
avg(c,5)<avg(c,5,1) and c<avg(c,5);
z
상기 키움신호를 동시에 구동하면 붙임 파일과 같이 연속된 매도 매수 화살표가 표시 되는데 이 것을 처음 한번만 표시되어 자동매매 혹은 매수 매도 표시가 되게 표현하고 싶습니다
그래서 한번 만들어 보았는데 구동이 되지 않습니다 무엇이 문제 이고 어떻게 수정하면 좋은지 검토와 지도부탁드립니다.
vars:
buySignal(false),
sellSignal(false),
lastBuySignalBar(0),
lastSellSignalBar(0);
// 매수 신호 조건
if c > o and c > highest(c, 10)[1] and ma(c, 5) > ma(c, 5)[1] and c > ma(c, 5) then
begin
// 마지막 매도 신호 이후 첫 매수 신호만 표시
if lastSellSignalBar < lastBuySignalBar then
begin
PlotPaintBar(High, Low, "Buy Signal", White); // 매수 신호 표시
buySignal = true; // 매수 신호 상태 기록
lastBuySignalBar = CurrentBar; // 매수 신호가 나온 캔들 기록
end
end
else if buySignal and lastBuySignalBar == CurrentBar then
NoPlot(1); // 이전 매수 신호가 발생한 경우 추가 신호는 표시하지 않음
// 매도 신호 조건
if c < o and c < lowest(c, 10)[1] and ma(c, 5) < ma(c, 5)[1] and c < ma(c, 5) then
begin
// 마지막 매수 신호 이후 첫 매도 신호만 표시
if lastBuySignalBar < lastSellSignalBar then
begin
PlotPaintBar(High, Low, "Sell Signal", Purple); // 매도 신호 표시
sellSignal = true; // 매도 신호 상태 기록
lastSellSignalBar = CurrentBar; // 매도 신호가 나온 캔들 기록
end
end
else if sellSignal and lastSellSignalBar == CurrentBar then
NoPlot(1); // 이전 매도 신호가 발생한 경우 추가 신호는 표시하지 않음
2024-10-04
817
글번호 183968
시스템
답변완료
몇 가지 질문드리겠습니다
안녕하세요
이평 관련 질문인데요
1.차트상에서 특정 지점에서만 값이 나오는 조건을 만들고 (적용한 수식은 아래에 첨부하였습니다)
2.거기에 이평을 적용했을때
3.스크린샷 처럼 (막대로 표현하였습니다) 주황색 막대사이의 값이 없는 (n/a 로 표시되는 부분 ) 부분들은 이평을 계산할때 어떻게 처리가 되나요? 값이 연속적으로 나오고 같은 값이 중첩되는 부분들이 발생하네요
질문1) n/a 값은 산정하지 않고 조건값 (if c>Var1*1.03 and h>l*1.1 ) 에 해당하는 봉들만 가지고 이평을 plot 할 수 있는 방법이 있나요??
예를 들어 5이평을 했을때 조건봉 5개만 가지고 나오게 하고 싶습니다
질문2-1)
예시 차트처럼 조건봉 사이 간격이 길때(n/a구간) 값을 추가해 보간을 하려고 하는데요,
예를 들어 조건봉 사이가 50개봉 이상일때 두 값의 절반값 ( (a+b)/2 ) 을 새로운 데이터로 추가한뒤에 이평을 구하는게 가능할까요??
질문 2-2) 그리고 다른 케이스로, 구간을 2등분해서 그 지점의 종가값을 추가해서 이평을 구할 수 있을까요?
감사합니다
아래는 적용한 수식입니다
Var1= ma(c,30);
Plot1(Var1,"ma");
if c>Var1*1.03 and h>l*1.1 Then
{Var2=C;
plot4(Var2,"이평대비",Orange,Def,2);
}
Var3=ma(var2,60);
if Var3>0 Then plot5(Var3,"조건이평");
2024-10-04
765
글번호 183966
지표
답변완료
LowestSince(키움함수)에 상응되는 함수는?
LowestSince(nth, condition, data), (설 명 : condition이 nth번째 만족된 이후 data의 최저값)
키움에서 사용되고 있는 위의 함수는 예스랭귀지에서 어떤 함수로 사용해야 되는지요?
제가 찾지 못해 질문을 남깁니다.
키움에서 사용은 다음과 같고
b1 = aa[2]>=aa[1] and aa[1]<aa;
c1 = LowestSince(1, b1, close);
예스랭귀지로는 ?
b1 = aa[2]>=aa[1] and aa[1]<aa;
c1 = NthLowest(1,close, b1);
2024-10-04
1016
글번호 183962
시스템