답변완료
수식 수정 요청
안녕하세요.
true 라인이 먼저 생성 되었다가 고,저 라인이 만들어지면 바로 없어 지는데
반대 true라인이 생성 될때 까지 유지 될수 있도록 수식 수정 부탁 드립니다.
고,저 라인은 우측 끝까지 그려지지 않고 확정 캔들 까지만 그려지기 때문에
사용에 불편함이 있어서 입니다.
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),
Text1(0),처리구분(""),T(0),TL21(0),TL31(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL21);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
// TL21 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+PriceScale*10,sDate[eBar],sTime[eBar],저점[1,1]+PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
TL_SetSize(TL2,3);
TL_SetColor(TL2,REd); //저점
TL_SetSize(TL21,1);
TL_SetColor(TL21,YELLOw); //저점
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL21);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
// TL21 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-PriceScale*10,sDate[eBar],sTime[eBar],고점[1,1]-PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],1));
Text_SetStyle(Text1, 2, 10);
TL_SetSize(TL2,3);
TL_SetColor(TL2,BLUe);
TL_SetSize(TL21,1);
TL_SetColor(TL21,YELLOw);
}
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,GRAy);
TL_Delete(TL3);
TL_Delete(TL31);
if T == 1 then
{
TL3 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1],sDate,sTime,고점[1,1]);
// TL31 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1]-PriceScale*10,sDate,sTime,고점[1,1]-PriceScale*10);
TL_SetColor(TL3,BLUe);
TL_SetSize(TL3,3);
TL_SetExtRight(TL3,true);
TL_SetColor(TL31,YELLOw);
TL_SetSize(TL31,1);
TL_SetExtRight(TL31,true);
}
if T == -1 then
{
TL3 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1],sDate,sTime,저점[1,1]);
// TL31 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1]+PriceScale*10,sDate,sTime,저점[1,1]+PriceScale*10);
TL_SetColor(TL3,REd); //저점
TL_SetSize(TL3,3);
TL_SetExtRight(TL3,true);
TL_SetColor(TL31,YELLOw); //저점
TL_SetSize(TL31,1);
TL_SetExtRight(TL31,true);
}
감사합니다.
2022-02-13
1021
글번호 156219
지표
답변완료
문의 드립니다!
안녕하세요!
아래수식은 얼마전에 답변해주신것인데요 이것을 아래와같이 한번더 수정부탁드립니다
1, 아래 원본수식에서 plot2(var2+var3*0.500,"중심");<== 이부분만 남겨놓고 나머지 부분은 모두 삭제하여 일단 간략하게 수정해주시구요
2, 이 수정된 수식을 원본으로해서 아래와같이 다시한번 검토 부탁드립니다
* 아래 작성해주신 수식에서 음성신호는 발생되는듯하나 세로선이 나타나지않네요
즉,
1) data1(풋캔들)과 data2(콜캔들)을 설정한 교차챠트에서
2) 이 수식의 plot2 선과 챠트상의 data1 혹은 data2 캔들이 만날때마다 각각 모두 세로선과 알람신호가 발생되었으면합니다 (* 선의 두께와 색은 임의로 조정가능토록 부탁드립니다)
수고스러우시겠지만 한번더 검토 부탁드립니다!!!
* 참고로 아래 작성해주신 수식에서 ***표시및 밑줄그은 부분이 혹시 data2가 아닌지요? (2군데 입니다)
-----------------------------------------------------
안녕하세요
예스스탁입니다.
input : 색1(RED),굵기1(1);
input : 색2(BLUE),굵기2(1);
input : 색3(GREEN),굵기3(1);
input : 색4(YELLOW),굵기4(1);
var : d1month(0,Data1),d1nday(0,Data1),d1week(0,Data1);
var : d1EX(false,Data1),d1HH(0,Data1),d1LL(0,Data1),d1OO(0,Data1),d1plot2(0,Data1);
var : d1CC(0,Data1),d1DD(0,Data1),d1HH1(0,Data1),d1LL1(0,Data1),d1OO1(0,Data1),d1cond1(False,Data1);
var : d1var1(0,Data1),d1var2(0,Data1),d1var3(0,Data1),d1var4(0,Data1),d1var5(0,Data1),d1var6(0,Data1);
var : d2month(0,Data2),d2nday(0,Data2),d2week(0,Data2);
var : d2EX(false,Data2),d2HH(0,Data2),d2LL(0,Data2),d2OO(0,Data2),d2plot2(0,Data1);==> *** 맨오른쪽 부분이 혹 Data2가 아닌지요?
var : d2CC(0,Data2),d2DD(0,Data2),d2HH1(0,Data2),d2LL1(0,Data2),d2OO1(0,Data2),d2cond1(False,Data2);
var : d2var1(0,Data2),d2var2(0,Data2),d2var3(0,Data2),d2var4(0,Data2),d2var5(0,Data2),d2var6(0,Data2);
var : tl(0);
#Data1
d1month = data1(int(date/100)-int(date/10000)*100);
d1nday = data1(date - int(date/100)*100);
d1week = data1(DayOfWeek(date));
#선물만기
#if d1Month%3 == 0 and d1nday >= 8 and d1nday <= 14 and d1week == 4 then
if d1nday >= 8 and d1nday <= 14 and d1week == 4 then#옵션만기
d1EX = true;
Else
d1EX = false;
if d1EX == false and d1EX[1] == true Then
{
d1Cond1 = true;
d1DD = sDate;
d1HH = data1(H);
d1LL = data1(L);
d1OO = data1(O);
d1CC = data1(C);
d1HH1 = d1HH[1];
d1LL1 = d1LL[1];
d1OO1 = d1OO[1];
}
if d1Cond1 == true then
{
if data1(H) > d1HH Then
d1HH = data1(H);
if data1(L) < d1LL Then
d1LL = data1(L);
d1var1 = d1HH;
d1var2 = d1LL;
d1var3 = d1var1-d1var2;
d1plot2 = d1var2+d1var3*0.500;
plot1(d1var1,"Maxi");
plot2(d1var2+d1var3*0.500,"중심");
plot3(d1var2,"Mini");
if sDate == d1DD Then
{
d1Var4 = data1(OpenD(0));
d1Var5 = data1(HighD(0));
d1Var6 = data1(LowD(0));
}
Plot4(d1Var4,"첫날시가",IFf(d1oo1 < data1(OpenD(0)) ,MAGENTA,BLUE));
if d1HH1 > 0 and d1LL1 > 0 Then
{
Plot5(d1HH1,"전월물최고");
Plot6(d1LL1,"전월물최저");
}
}
#Data1====> *** 이부분도 혹 data2가 아닌지요?
------
d2month = data2(int(date/100)-int(date/10000)*100);
d2nday = data2(date - int(date/100)*100);
d2week = data2(DayOfWeek(date));
#선물만기
#if d2Month%3 == 0 and d2nday >= 8 and d2nday <= 14 and d2week == 4 then
if d2nday >= 8 and d2nday <= 14 and d2week == 4 then#옵션만기
d2EX = true;
Else
d2EX = false;
if d2EX == false and d2EX[1] == true Then
{
d2Cond1 = true;
d2DD = sDate;
d2HH = data2(H);
d2LL = data2(L);
d2OO = data2(O);
d2CC = data2(C);
d2HH1 = d2HH[1];
d2LL1 = d2LL[1];
d2OO1 = d2OO[1];
}
if d2Cond1 == true then
{
if data2(H) > d2HH Then
d2HH = data2(H);
if data2(L) < d2LL Then
d2LL = data2(L);
d2var1 = d2HH;
d2var2 = d2LL;
d2var3 = d2var1-d2var2;
d2plot2 = d1var2+d1var3*0.500;
plot7(d2var1,"Maxi");
plot8(d2var2+d2var3*0.500,"중심");
plot9(d2var2,"Mini");
if sDate == d2DD Then
{
d2Var4 = data2(OpenD(0));
d2Var5 = data2(HighD(0));
d2Var6 = data2(LowD(0));
}
Plot10(d2Var4,"첫날시가",IFf(d2oo1 < data2(OpenD(0)) ,MAGENTA,BLUE));
if d2HH1 > 0 and d2LL1 > 0 Then
{
Plot11(d2HH1,"전월물최고");
Plot12(d2LL1,"전월물최저");
}
}
if Data1(CrossUp(h,d1plot2) or CrossDown(l,d1plot2)) Then
{
tl = TL_New_Self(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(tl,색1);
TL_SetSize(Tl,굵기1);
PlaySound("");
}
if Data2(CrossUp(h,d1plot2) or CrossDown(l,d1plot2)) Then
{
tl = TL_New_Self(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(tl,색2);
TL_SetSize(Tl,굵기2);
PlaySound("");
}
if Data1(CrossUp(h,d2plot2) or CrossDown(l,d2plot2)) Then
{
tl = TL_New_Self(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(tl,색3);
TL_SetSize(Tl,굵기3);
PlaySound("");
}
if Data2(CrossUp(h,d2plot2) or CrossDown(l,d2plot2)) Then
{
tl = TL_New_Self(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(tl,색4);
TL_SetSize(Tl,굵기4);
PlaySound("");
}
즐거운 하루되세요
> 유로파54 님이 쓴 글입니다.
> 제목 : 문의 드립니다!
> 안녕하세요!
아래수식에서 plot2와 캔들이 만날때 세로선과 알람신호가 발생토록 부탁드립니다
* data1(풋)과 data2(콜)를 설정한 교차챠트의 2개캔들 모두에 이지표를 적용하고자 하는데요
이때 상대캔들과 이지표가 만날때도 세로선이 발생토록 부탁드립니다
즉, 콜캔들에 적용한 지표에 풋캔들이 만났을때와 이 반대의 경우도 해당됩니다
(* 선의 두께와 색은 임의로 조정가능토록 부탁드립니다)
항상 친절하고 자세히 도와주심에 진심으로 감사드립니다
-----------------------------------------------------
var : month(0),nday(0),week(0);
var :EX(false),HH(0),LL(0),OO(0),CC(0),DD(0),HH1(0),LL1(0),OO1(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
#선물만기
#if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
if nday >= 8 and nday <= 14 and week == 4 then#옵션만기
EX = true;
Else
EX = false;
if EX == false and EX[1] == true Then{
Condition1 = true;
DD = sDate;
HH = H;
LL = L;
OO = O;
CC = C;
HH1 = HH[1];
LL1 = LL[1];
OO1 = OO[1];
}
if Condition1 == true then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
var1 = HH;
var2 = LL;
var3 = var1-var2;
plot1(var1,"Maxi");
plot2(var2+var3*0.500,"중심");
plot3(var2,"Mini");
if sDate == DD Then
{
Var4 = DayOpen;
Var5 = DayHigh;
Var6 = DayLow;
}
Plot4(Var4,"첫날시가",IFf(oo1 < DayOpen(0) ,MAGENTA,BLUE));
if HH1 > 0 and LL1 > 0 Then
{
Plot5(HH1,"전월물최고");
Plot6(LL1,"전월물최저");
}
}
2022-02-13
756
글번호 156218
지표
답변완료
문의드립니다
1) input : per1(23.6),per2(50.0),per3(76.4);
var : hh(0),ll(0),dd(0),tt(0);
var : tl1(0),tl2(0),tl3(0),v1(0),v2(0),v3(0),tl4(0),tl5(0);
if bdate > bdate[1] then
{
hh = h;
ll = l;
dd = sdate[1];
tt = stime[1];
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl4 = TL_New(dd,tt,DayHigh(1),sdate,stime,DayHigh(1));
tl5 = TL_New(dd,tt,DayLow(1),sdate,stime,DayLow(1));
}
if h > hh and hh > 0 Then
{
hh = h;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
if l < ll and ll > 0 Then
{
ll = l;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
TL_SetColor(TL1,GRAY);
TL_SetSize(TL1,0);
TL_SetExtRight(TL1,true);
TL_SetColor(TL2,BLACK);
TL_SetSize(TL2,1);
TL_SetExtRight(TL2,true);
TL_SetColor(TL3,GRAY);
TL_SetSize(TL3,0);
TL_SetExtRight(TL3,true);
TL_SetColor(TL4,LMAGENTA);
TL_SetSize(TL4,0);
TL_SetExtRight(TL4,true);
TL_SetColor(TL5,LMAGENTA);
TL_SetSize(TL5,0);
TL_SetExtRight(TL5,true);
v1 = hh-(hh-ll)*(per1/100);
v2 = hh-(hh-ll)*(per2/100);
v3 = hh-(hh-ll)*(per3/100);
INPUTS: LENGTH1(5);
INPUTS: 색1(YELLOW),색2(RED), 굵기(1);
VARS : DEMA1(0),TL(0);
var1= EMA(C,LENGTH1);
value1= EMA(EMa(C,LENGTH1),LENGTH1);
DEMA1 = var1 * 2 - value1;
if C >DEMA1 Then
PLOT1(DEMA1, "DEMA1",GRAY);
Else
PLOT1(DEMA1, "DEMA1",GRAY);
if CrossUp(DEMA1,v2) or CrossUp(DEMA1,v2) or CrossUp(DEMA1,v2) or CrossUp(DEMA1,DayHigh(1)) or CrossUp(DEMA1,DayLow(1)) Then
{
TL_Delete(tl);
tl = TL_New(sDate,sTime,DEMA1-PriceScale*5,NextBarSdate,NextBarStime,DEMA1-PriceScale*5);
TL_SetColor(tl,REd);
TL_SetSize(tl,3);
TL_SetExtRight(TL,true);
}
if CrossDown(DEMA1,v2) or CrossDown(DEMA1,v2) or CrossDown(DEMA1,v2) or CrossDown(DEMA1,DayHigh(1)) or CrossDown(DEMA1,DayLow(1)) Then
{
TL_Delete(tl);
tl = TL_New(sDate,sTime,DEMA1-PriceScale*5,NextBarSdate,NextBarStime,DEMA1-PriceScale*5);
TL_SetColor(tl,GREEn);
TL_SetSize(tl,3);
TL_SetExtRight(TL,true);
}
1) 이수식을 사용하고 있는데 수평선이 나왔다 안나왔다 하는데 안나올때는 점만찍히게 됩니다 주로 틱챠트에서그런현상이자주 나옵니다,잘나오게 방법이 있는지요? 만약에 수정할부분이 없다면 현재수평선 나오는지점에서 하나더+5틱위로 나오게 부탁드립니다 (즉수평선이같은색으로 2개나오게)
2) input : 기간(10);
var1 = (H+L+C+C);
var2 = ma(var1,기간);
value1 = iff(var1>var2,1,0);
value2 = iff(var1<=var2,1,0);
plot1(value1,"수식1");
plot2(value2,"수식2");
1번수식에다 2번수식을 추가하여크로스될때에 색채우기 지표를만들려고 합니다 부탁드립니다~~항상감사드립니다
2022-02-12
615
글번호 156211
지표