차트에 표시될수 있게 도와주세요
안녕하세요 관리자님!!
항상 감사드립니다^^
아래 지표는 관리자님이 만들어주신 지표인데요
이중에 plot7, plot8을 차트에 직접 표시되게 설정이 가능할까요??
수정 부탁드립니다!!
-아 래-
input : nday(2);
var : OO(0),HH(0),LL(0),cnt(0);
OO = DayOpen(nday);
HH = DayHigh(1);
LL = DayLow(1);
for cnt = 1 to nday
{
if DayHigh(cnt) > hh Then
hh = DayHigh(cnt);
if DayLow(cnt) < ll Then
ll = DayLow(cnt);
}
if OO > 0 then
{
var1 = C/OO;
plot1(var1,"시가");
}
if HH > 0 then
{
var2 = (C/HH);
plot2(var2,"고가");
}
if LL > 0 then
{
var3 = C/LL;
plot3(var3,"저가");
plot4(0,"0선");
plot5(-var2,"-고가");
plot6(-var3,"-저가");
plot7(var3-var2,"저가-고가");
plot8(var2-var3,"고가-저가");
}
2024-11-16
733
글번호 185329
지표
답변완료
수정 부탁드립니다.
아래 지표에서 "▼" 표시를 좀 더 크게 만들고 싶습니다.
"▼"표시에서 신호음이 나도록 할 수 있는 수식이나 방법 알려주시면 감사하겠습니다
사진에 보이는 박스내 숫자 표시도 안되게 부탁드립니다
input : length(15);
input : show_levl(true);
var : up(0),dn(0),A(0),emaValue(0),correction(0),zlma(0);
var : signalUp(False),signalDn(False),zlma_color(0),ema_col(0);
var : TOP(0),BTM(0),box(0),tx(0),tx1(0),check_signals(False);
up = Magenta;
dn = Lime;
#var box1 = box(na) // Variable to store the box
a = atr(200);
emaValue = ema(close, length);
correction = close + (close - emaValue);
zlma = ema(correction, length);
signalUp = CrossUp(zlma, emaValue);
signalDn = CrossDown(zlma, emaValue);
zlma_color = iff(zlma > zlma[3] , up , iff(zlma < zlma[3] , dn , Nan));
ema_col = iff(emaValue < zlma , up , dn);
plot1(zlma, "ZLMA",zlma_color); // Plot ZLMA
plot2(emaValue,"EMA",ema_col);
if signalUp Then
{
Top = zlma;
BTM = zlma-A;
box = box_new(sDate,sTime,Top,NextBarSdate,NextBarStime,BTM);
Box_SetColor(box,up);
Box_SetFill(box,true);
var3 = (Top+BTM)/2;
tx = Text_New(NextBarSdate,NextBarStime,var3,NumToStr(C,2));
Text_SetStyle(tx,1,2);
}
else if signalDn Then
{
Top = zlma+A;
BTM = zlma;
box = box_new(sDate,sTime,Top,NextBarSdate,NextBarStime,BTM);
Box_SetColor(box,dn);
Box_SetFill(box,true);
var3 = (Top+BTM)/2;
tx = Text_New(NextBarSdate,NextBarStime,var3,NumToStr(C,2));
Text_SetStyle(tx,1,2);
}
Else
{
Box_SetEnd(box,sDate,sTime,BTM);
Text_SetLocation(tx,sDate,sTime,var3);
}
check_signals = signalUp or signalDn;
if CrossDown(high, BTM) and emaValue > zlma Then
{
tx1 = Text_New(sDate[1],sTime[1],H[1],"▼");
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,dn);
}
if CrossUp(low, Top) and emaValue < zlma Then
{
tx1 = Text_New(sDate[1],sTime[1],L[1],"▲");
Text_SetStyle(tx1,2,0);
Text_SetColor(tx1,up);
}
2024-11-16
760
글번호 185328
지표
답변완료
아. 왜 안되는걸까요?
If 상승꺽임 Then
{ 꺽임상태 = "상승꺽임"; }
If 하락꺽임 Then
{ 꺽임상태 = "하락꺽임"; }
연속4하락꺽임 = ( 꺽임상태 == "하락꺽임" && 꺽임상태[1] == "하락꺽임" && 꺽임상태[2] == "하락꺽임" && 꺽임상태[3] == "하락꺽임");
var : CrossUpID(0),CrossDownID(0);
If 연속4하락꺽임 Then Begin
CrossUpID = Text_New_Self (sDate, sTime, ST, "4");
Text_SetStyle(CrossUpID, 2, 2);
Text_SetColor(CrossUpID, Blue);
Text_SetSize(CrossUpID,20);
End;
If 하락꺽임 Then Begin
CrossDownID = Text_New_Self (sDate, sTime, ST, "◇");
Text_SetStyle(CrossDownID, 2, 2);
Text_SetColor(CrossDownID, Red);
Text_SetSize(CrossDownID,20);
End;
코드의 일부분 입니다.
상승꺽임, 하락꺽임은 잘 표시되는데 연속4하락꺽임은 안됩니다.
상승꺽임과 하락꺽임을 꺽임상태에 저장해
신호의 패턴을 규정하고 그걸 이용한 매매를 만들어 볼까 했는데..
신호패턴 저장 방법에 문제가 있나봅니다.
머리속으로는 문제가 없는데 안되니까 답답하네요..
삽질1
// 꺽임 상태 업데이트
If 상승꺽임 Then Begin
꺽임상태 = "상승꺽임";
End Else If 하락꺽임 Then Begin
꺽임상태 = "하락꺽임";
End Else Begin
꺽임상태 = "없음"; // 이전 꺽임 상태 유지하지 않고 '없음'으로 설정
End;
// 연속4하락꺽임 카운터 업데이트
If 꺽임상태 == "하락꺽임" Then Begin
하락꺽임카운터 = 하락꺽임카운터 + 1;
End Else If 꺽임상태 == "상승꺽임" Then Begin
하락꺽임카운터 = 0;
End Else Begin
하락꺽임카운터 = 하락꺽임카운터;
End;
// 연속4하락꺽임 조건 설정
연속4하락꺽임 = (하락꺽임카운터 >= 4);
// 크로스 업/다운 감지 및 표시
Var: CrossUpID(0), CrossDownID(0);
// 연속4하락꺽임 발생 시 "4" 표시
If 연속4하락꺽임 Then Begin
CrossUpID = Text_New_Self(sDate, sTime, ST, "4");
Text_SetStyle(CrossUpID, 2, 2);
Text_SetColor(CrossUpID, Blue);
Text_SetSize(CrossUpID, 20);
End;
이런식으로 하면 하락꺽임 이 되긴 합니다만.. 패턴을 지정하기도 힘들고...
이전 코드가 왜 안되는지 알아야 겠어요 너무 답답해요.
2024-11-17
723
글번호 185327
지표
답변완료
키움 수식 예스트레이더 수식으로의 변형
1-1. 붙임 사진의 아래 지표는 키움 지표로서 아래와 같습니다.
q9=ADX(14)>20;
barssince(q9)
1-2. 위 지표가 연속된(만약 캔들이 1개만이면 그 캔들의 고가와 저가를 수평선(선의 굵기도 임의 변경가능토록)으로 연결하고 그 사이에 색을 임의로 변경하여 넣을수 있게) 적색 기둥 위 해당 캔들 중 최고가와 최저가를 연결하는 선을 만들고 그 선사이에 색을 넣는데 임의로 색도 변경이 가능하게 하고 싶습니다. 이렇게 수평선 두개 사이에 색이 칠해져서 연결하다가 아래 지표에 다시 적색 기둥이 발견되면 다시 동일한 방법으로 수평으로 그려지게 하고 싶습니다.
동작하지 않은 제가 만든 예시(참고만하셔요,오류 투성이 입니다, 쳇 gpt 이용)
// 입력값
input : ADX_Period(14), ADX_Threshold(20), lineThickness(2), lineColor(Orange), fillColor(RGB(255, 0, 0));
// 변수 선언
var : adxValue(0), isBelowThreshold(false), highestHigh(0), lowestLow(0), barIndex(0), previousBarHigh(0), previousBarLow(0), inThresholdPeriod(false);
// ADX 계산
adxValue = ADX(ADX_Period);
// ADX 값이 기준값 이하일 경우 True 설정
isBelowThreshold = adxValue < ADX_Threshold;
// 최고가와 최저가 초기화
highestHigh = High;
lowestLow = Low;
barIndex = 0;
inThresholdPeriod = false;
// 연속된 ADX 값이 기준 이하일 때 최고가와 최저가 추적
if isBelowThreshold then begin
// 첫 번째 캔들이면 최고가와 최저가 초기화
if not inThresholdPeriod then begin
highestHigh = High;
lowestLow = Low;
inThresholdPeriod = true; // 연속적인 적색 캔들의 범위 설정
end;
// 연속된 캔들들의 최고가와 최저가 추적
if High > highestHigh then highestHigh = High;
if Low < lowestLow then lowestLow = Low;
end else begin
// ADX가 기준을 넘으면 선을 그리고 초기화
if inThresholdPeriod then begin
// 최고가와 최저가 사이에 수평선 그리기
Plot1(highestHigh, "HighestHighLine", lineColor, lineThickness);
Plot2(lowestLow, "LowestLowLine", lineColor, lineThickness);
// 최고가와 최저가 사이에 색 채우기
FillArea(lowestLow, highestHigh, fillColor, "FillBetweenLines");
// 초기화
inThresholdPeriod = false;
end;
end;
// 마지막으로 색을 채우고 수평선 그리기
if inThresholdPeriod then begin
// 마지막 연속된 캔들의 최고가와 최저가에 수평선 그리기
Plot1(highestHigh, "HighestHighLine", lineColor, lineThickness);
Plot2(lowestLow, "LowestLowLine", lineColor, lineThickness);
// 색 채우기
FillArea(lowestLow, highestHigh, fillColor, "FillBetweenLines");
end;
2-2. 아래는 키움지표인데 이 지표도 잘 못 나타낸 것인데 하고 싶은 것은 이 ww2에 해당하는 연속 캔들의 값을 4등분으로 나뉘어 4개의 선을 만들고 싶고(고저 기준으로 간격이 동일한 4개선) 이 선들은 굵기 조절 몇 선 자체를 없애거나 나오게도 할 수있게 조절할 수도 있게 만들고 싶습니다 이런 4개이 수평선을 긋고 그 다음 ww2에 해당하면 다시 4개의 수평선을 긋고 하는 식으로 예스트레이더로 변형을 부탁드립니다(캔들의 중간사이에서 잘 보이게 선 굵기를 조정할 수 있게(캔들보다도 더 크게 할수도 작게 할수도 조절할수 있게) 부탁드립니다)도 부탁드려요- 결론적으로 위 1-1과 1-2는 캔들들 중 고가와 저가에 선을 긋는 것이라면 2-2는 그냥 그 고저를 4등분한 선을 긋고 싶습니다(선 굵는 크게 크게 할 수도 있게)
ww1=ADX(14)<20;
ww2=if(ww1, 1,0);
valuewhen(1,ww2,((고가-저가)/2+저가))
아래는 제가 하긴 했는데 위 의도되로 이 ww2에 해당되는 캔들 각각의 중앙값만 연결한 것이지 연속된 이 값들의 가운데에 선 한개만 만들고 싶습니다 아래는 제가 의도되로 만들지는 못했지만 그냥 중앙선만 연결한 지표를 참고로 붙였습니다.
의도와 잘못되게 작성한 지표(단순 참고 , 쳇gpt이용)
// 입력값
input: ADX_Period(14), ADX_Threshold(20), lineThickness(5), lineColor(RGB(255, 0, 0)); // 선 굵기와 색상
// 변수 선언
var: adxValue(0), isBelowThreshold(false), midPrice(0), linePosition(0);
// ADX 계산
adxValue = ADX(ADX_Period);
// ADX 값이 기준값 이하일 경우 True 설정
isBelowThreshold = adxValue < ADX_Threshold;
// 고가와 저가의 중간 값 계산
midPrice = ((High - Low) / 2) + Low;
// ADX 값이 기준 이하일 경우 중간값을 기록
if isBelowThreshold then begin
// 중간값에 선을 긋고, 굵기를 설정 (캔들의 중간에 선을 그리도록)
linePosition = midPrice;
// 캔들의 중간에 선을 그리되, 선의 굵기를 캔들보다 크게 설정
Plot1(linePosition, "MidPriceLine", lineColor, lineThickness);
end;
2024-11-16
895
글번호 185323
지표