답변완료
부탁드립니다
input :sm(21),cd(0.4);
var : src(0),di(0),c1(0),c2(0),c3(0),c4(0),c5(0);
var : i1(0),i2(0),i3(0),i4(0),i5(0),i6(0),bfr(0),bfrc(0),tc(0);
src = close;
di = (sm - 1.0) / 2.0 + 1.0;
c1 = 2 / (di + 1.0);
c2 = 1 - c1;
c3 = 3.0 * (cd * cd + cd * cd * cd);
c4 = -3.0 * (2.0 * cd * cd + cd + cd * cd * cd);
c5 = 3.0 * cd + 1.0 + cd * cd * cd + 3.0 * cd * cd;
if CurrentBar >= 1 Then
{
i1 = c1*src + c2*i1[1];
i2 = c1*i1 + c2*i2[1];
i3 = c1*i2 + c2*i3[1];
i4 = c1*i3 + c2*i4[1];
i5 = c1*i4 + c2*i5[1];
i6 = c1*i5 + c2*i6[1];
bfr = -cd*cd*cd*i6 + c3*(i5) + c4*(i4) + c5*(i3);
bfrC = iff(bfr > bfr[1], green,iff(bfr < bfr[1], red , blue));
plot1(bfr,"Trend",bfrC);
}
위 지표를
10일 20일 60일 120일 240 일선 추가해서 수정 부탁드립니다
2021-06-27
2240
글번호 150307
지표
답변완료
수식 문의 드립니다
두 가지 문의사항이 있습니다
1번 문의사항
Excel로 치자면 LARGE, SMALL 함수를 사용자 함수화 시키고 싶습니다.
NthMaxList
설명 : 리스트에 포함된 값 중에서 N번째 큰 값을 구함.
항목은 모두 수치 값이어야 함
함수 : NthMaxList(N,num1,num2,num3,num4,….)
예제 : NthMaxList (3,10, 20, 30, 40) 20 반환
NthMaxList (3, Open, HH, ma(c,5), dayclose(1))
지정한 4개의 항목 값 중 세번째 높은 값을 구함 .
NthMaxList를 사용하자니
함수 안에 일일이 값을 넣어주어야 하니 수식이 너무 길어지더라고요
예를 들어서 현재 봉 기준으로 최근 5개 봉의 종가 중 2번째로 큰 값을 구하려면
NthMaxList(2, C, C[1], C[2], C[3], C[4])
이렇게 사용하면 되는 것 같은데
현재 봉 기준으로 특정 과거 시점까지 (N개라고 가정), x번째로 큰 값을 구한다 쳤을때
N개가 많아지면.. 많이 불편한데
Excel에 있는 LARGE, SMALL 함수는
LARGE(범위, x) 라고 간단히 쓸 수 있잖아요?
이것을 예스랭귀지로 사용자함수화 시킬 수 없을까요?
이를테면
Large(N, 조건, x) 이렇게 해서
N : Navigation 기간 설정
조건 : Open, High, Low, Close
x : 몇 번째인지
N을 갖고 for문을 작성하거나 array를 활용해야하나..?
코딩 실력이 미진하여서 만들기가 너무 난해하네요..
---------------------------------------------------------
2 번 문의사항
만약에 60분봉을 쓴다고 가정하였을 때에
하루에 봉의 개수는 7개가 나오잖아요?
만약 DayIndex가 7이라면(오늘의 마지막 봉이라면)
-> ABS(하루 전 7번봉의 시가 - 오늘의 7번봉의 종가)
아니라면 이전의 자기 자신의 값을 지정
이렇게 설정하려면 수식작성을 어떻게 해야하나요?
설명을 좀 애매하게 적은 것 같은데 구체적으로 예를 들자면
그저께
7번봉 - 값 계산 -> 2
어제
1 - 2
2 - 2
3 - 2
4 - 2
5 - 2
6 - 2
7 - 값 계산 -> 4란 값 산출
오늘
1 - 4
2 - 4
3 - 4
4 - 4
5 - 4
6 - 4
7 - 값 계산 -> 3란 값 산출
Var : Calculation(0);
If Index > 30 and DayIndex == 7
Then Calculation = ABS(Open[7] - Close[0]);
Else Calculation = Calculation[1];
Plot1(Calculation);
이렇게 작성해보았는데 지표창에 아무것도 출력이 되지 않습니다
isNan(value) == false 를 사용해야 하는 것 같기도 한데..
결측값 처리를 어떻게 해야할지 모르겠습니다..
제가 첫 프로그래밍 언어가 YesLanguage이고 비전공자이다 보니까 어렵네요..
-------------------------------------------------------------------------
늘 많은 도움 받고 있습니다!
꼭 좀 도와주세요ㅠㅠㅠㅠ
2021-06-27
1897
글번호 150306
사용자 함수
답변완료
수정부탁드립니다
$,안녕하세요
아래식에서 첫파동 시작을 아래조건으로 수정하고 싶습니다,
1,장종료후 완성되지 않은 이전파동은 무시하고 초기화상태에서 익일 장시작후 첫파동의
고점과 저점라인을 Y축까지 그리기한다,(기존식은 전일장과 파동이 연결되어있음)
2,첫파동 고점의 대칭선을 위로2개 Y축까지 그리기한다
3,첫파동 저점의 대칭선을 아래로2개 Y축까지 그리기한다.
4,다른식은 그대로 유지한다.
Input : af(0.02), maxAF(0.2);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0);
Array : TL11[50](0),TL22[50](0);
var1 = CSar(af,maxAF);
if bdate != bdate[1] then
{
value1 = 0;
value2 = 0;
for cnt = 1 to 49
{
TL_Delete(TL11[cnt]);
TL_Delete(TL22[cnt]);
}
}
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
if LL > 0 Then
if LD == sdate then
{
if value1 == 0 then
{
value1 = value1+1;
value11 = LL[1];
TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
TL_SetExtRight(TL11[value1],true);
TL_SetSize(TL11[value1],2);
TL_SetColor(tl11[value1],BLACK);
TL_SetColor(tl1,GRAY);
}
if value1 > 0 and LL[1] < value11 then
{
value1 = value1+1;
value11 = LL[1];
TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
TL_SetExtRight(TL11[value1],true);
TL_SetColor(tl1,GRAY);
TL_SetStyle(TL11[value1],5);
}
}
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
if HH > 0 Then
if HD[1] == sdate then
{
if value2 == 0 then
{
value2 = value2+1;
value22 = HH[1];
TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH);
TL_SetExtRight(TL22[value2],true);
TL_SetSize(TL22[value2],2);
TL_SetColor(tl22[value2],BLACK);
TL_SetColor(tl1,GRAY);
}
if value2 > 0 and HH[1] > value22 then
{
value2 = value2+1;
value22 = HH[1];
TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH);
TL_SetExtRight(TL22[value2],true);
TL_SetColor(tl2,GRAY);
TL_SetStyle(TL22[value2],5);
}
}
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
}
}
도움부탁드립니다.
2021-06-27
1485
글번호 150303
지표
답변완료
지표카운트 부탁드립니다.
다른분이 만든 지표를 응용해서 지표를 만들려고합니다...
Input:macd_short(12),macd_long(26),macd_period(9),
sto_len(12),sto_len1(5),sto_len2(5),
cci_period1(9),cci_period2(10),ma_period(10);
Var : macd_val(0),macd_osc_v(0),sto_k(0),sto_d(0),cci_val(0),cci_sig(0);
macd_val = MACD(macd_short, macd_long);
macd_osc_v = ema(macd_val, macd_period);
sto_k = StochasticsK(sto_len, sto_len1);
sto_d = StochasticsD(sto_len, sto_len1, sto_len2);
cci_val = CCI(cci_period1);
cci_sig = ema(cci_val, cci_period2);
예를들어
분봉은 직접 속성에서 선택하고 지금은 3분봉을 기준으로 하겠습니다.
위 6가지 변수에서
1번조건 : macd_val > macd_osc_v , sto_k > sto_d ,cci_val > cci_sig
각각 조건을 충족할경우 카운팅해서 3분봉 위에 1.2.3등올 텍스트로 출력하고
싶습니다..
2번 조건 : 반대일경우 macd_val > macd_osc_v , sto_k > sto_d ,cci_val > cci_sig 도 조
건을 충족할경우 카운팅해서 3분봉아래에 1.2.3 등으로 표시하고 싶습니다.
봉마다 조건을 충족하는 숫자가 위아래로 표시되는 형태입니다.
1번 조건이 2개 2번 조건이 1개 일경우 3분봉위 2, 아래1이 표시되는 형태입니다.
표시되는 텍스트의 크기를 선택할수있게 만들어 주시면 더 고맙겠습니다.
감사합니다.
2021-06-26
1623
글번호 150300
지표