답변완료
수식 부탁드립니다
아래 지표로 30분 지표을 240틱봉에서 볼수있게 부탁드립니다
input : p1(5),p2(20),P3(60);
var : T1(0),T2(0),T3(0);
var1 = ma(C,P1);
var2 = ma(C,P2);
var3 = ma(C,P3);
if var1 > var1[1] Then
T1 = 1;
if var1 < var1[1] Then
T1 = -1;
if var2 > var2[1] Then
T2 = 1;
if var2 < var2[1] Then
T2 = -1;
if var3 > var3[1] Then
T3 = 1;
if var3 < var3[1] Then
T3 = -1;
if T1 != T1[1] Then
value1 = var1[1];
if T2 != T2[1] Then
value2 = var2[1];
if T3 != T3[1] Then
value3 = var3[1];
plot1(var1,"이평1",iff(T1==1,WHITE,BLACK));
plot2(value1,"전환1",iff(T1!=1,WHITE,BLACK));
plot3(var2,"이평2",iff(T2==1,RED,BLUE));
plot4(value2,"전환2",iff(T2!=1,RED,BLUE));
plot5(var3,"이평3",iff(T3==1,YELLOW,GREEN));
plot6(value3,"전환3",iff(T3!=1,YELLOW,GREEN));
2020-07-16
2146
글번호 140738
지표
답변완료
일봉시스템의 분봉 시스템 수식문의
아래수식은 일봉차트에 적용가능한데,
분봉(3 OR 5분봉)차트에 적용할수 있게끔 수식 수정 부탁드립니다.
//-------수식[1]-----
input: p1(5),p3(10),매수(30),매도(70);
var: rc(0),RM(0),Linda(0);
RC= ((C - C[p1]) / C[p1])*100;
RM=RC-RC[1];
Linda=100-(100/(1+Ema(IFF(RM>0,RM,0), p3)/
Ema(IFF(RM<0, abs(RM),0),p3)));
//매수
If
crossup(linda,매수)
Then
buy("매수1",OnClose,def);
//청산
If
crossdown(linda,매도)
Then
exitlong("Exit",OnClose,DEF);
//-----------------------------
예스 기본내장 함수인 MFI를 일봉차트의 내용을 분봉으로 적용하고자합니다.
아래수식을 분봉차트용으로 부탁드립니다.
---수식 2 시작( MFI :MONEY FLOW INDEX)---
Input : Period(14), LPercent(20), SPercent(80);
Var : value(0);
value = MFI(Period);
# 매수/매도청산
If crossup(value ,LPercent) Then
{
Buy();
}
# 매도/매수청산
If crossdown(value,SPercent) Then
{
Sell();
}
//-------------------------수식2 끝-----------
2020-07-16
2276
글번호 140716
시스템
답변완료
수식질문드립니다.
항상 노고에 감사드립니다.
아래 수식은 전고전저돌파수식 만들어주신것인데,진입이 안되는 부위가 있어서 캡처해서 첨부사진에 올렸습니다. 진입안되는 부위는 제가 흰색화살표로 표시하였습니다.
그리고 노란색(전고점), 하늘색(전저점)의 폭이 50틱 이내일 경우만 진입하게 하고싶습니다. 감사합니다.
Input:barCnt(5);
Var:j(0),turnPntBit(""),TL1(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
// 봉이 새로 생겼으므로 봉개수 관리하는 변수들의 봉개수 값 1씩 증가
For j = 0 To 9 {
barArr[j] = barArr[j] + 1;
}
// 고점조건 = 5-1-5에서 가운데 고가가 좌측 5봉과 우측 5봉 고가보다 높다
// 저점조건 = 5-1-5에서 가운데 저가가 좌측 5봉과 우측 5봉 저가보다 낮다
Condition1 = Highest(H,barCnt)[barCnt+1] <= H[barCnt] and H[barCnt] > Highest(H,barCnt);
Condition2 = Lowest(L,barCnt)[barCnt+1] >= L[barCnt] and L[barCnt] < Lowest(L,barCnt);
// 전환점구분 null값으로 초기화;
// if 고점조건, 저점조건 동시 만족시 then
// if 이전 고점,저점 범위를 모두 벗어났을 때
// 전환점구분 = 고저점;
// else if 이전 고점을 갱신했다면 전환점구분 = 고점;
// else if 이전 저점을 갱신했다면 전환점구분 = 저점;
// else if 전환점배열의 현재(배열상 1번째)값이 고점이면 전환점구분 = 저점;
// else if 전환점배열의 현재 값이 저점이면 전환점구분 = 고점;
// else if 고점조건 만족하면 전환점구분 = 고점;
// else if 저점조건 만족하면 전환전구분 = 저점;
turnPntBit = "";
If Condition1 and Condition2 Then {
If Max(valArr[1],valArr[2]) < H[barCnt] and Min(valArr[1],valArr[2]) > L[barCnt] Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H[barCnt] Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L[barCnt] Then turnPntBit = "Lo";
Else If turnPntArr[1] == "Hi" Then turnPntBit = "Lo";
Else If turnPntArr[1] == "Lo" Then turnPntBit = "Hi";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
// if 전환점구분에 값이 있을 때만 아래 실행, 없으면 통과
If turnPntBit <> "" Then
{
// if 전환점구분이 고저점이면 then
// 이전 파동은 연장시키고 아래에서 새로이 파동선을 추가토록 한다.
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H[barCnt],L[barCnt]);
barArr[1] = barCnt;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
// if 신규 전환점구분이 현재(전환점배열 1번째)와 다르면 then
// 배열값들을 이전값으로 Move;
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
// if 전환점구분이 바뀌었거나 또는
// (전환점구분은 안바뀌었는데
// (이전 고점보다 높은 고점이 발생했거나 또는
// 이전 저점보다 낮은 저점이 발생했으면)) then
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H[barCnt]) or
(turnPntBit == "Lo" and valArr[1] > L[barCnt]))) Then {
// 값 배열에는 고점 또는 저점을 대입;
// 봉개수 배열에는 입력변수의 봉개수 대입;
// 전환점 배열에 전환점구분값을 대입;
valArr[1] = IFF(turnPntBit == "Hi",H[barCnt],L[barCnt]);
barArr[1] = barCnt;
turnPntArr[1] = turnPntBit;
// if 이전봉대비 전환점구분이 바뀌었다면 추세선 새로 그리고;
// else 전환점구분이 안바뀌었으면 값만 바뀐거므로 추세선 연장;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],
sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,2);
TL_SetColor(TL1,GREEN);
var : TL11(0),TL12(0);
if turnPntArr[1][0] == "Hi" Then{
TL_Delete(TL11);
TL11 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
TL_SetExtRight(TL11,true);
TL_SetColor(TL11,YELLOW);
TL_SetSize(TL11,2);
}
if turnPntArr[1][0] == "Lo" Then{
TL_Delete(TL12);
TL12 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
TL_SetExtRight(TL12,true);
TL_SetColor(TL12,CYAN);
TL_SetSize(TL12,2);
}
if turnPntArr[1] == "Lo" and crossup(C,valArr[2]) Then
buy();
if turnPntArr[1] == "Hi" and CrossDown(C,valArr[2]) Then
sell();
2020-07-16
2456
글번호 140712
시스템