답변완료
예스랭귀지 수식 요청합니다
안녕하세요
<1번>
A = sum(if(H-H(1)>0&&H-H(1)>L(1)-L,1,0),14);
B = sum(IF(l(1)-l>0&&H-H(1)<L(1)-L,1,0),14);
Z=eavg(A,10)-eavg(A,10);
<2번>
A = RSI(14);
B=Stochasticsslow(12, 5);
X=ma(C, 20);
Y=((predayhigh()+predaylow()+predayclose())/2)-predaylow();
조건 =
A>=30&&
B>=30&&
C>=X&&
C>=Y&&
A>A(1)&&B>B(1);
cnt=CountSince(date!=date(1),조건)==1;
cnt&&!cnt(1)
<3번>
A=ma(C,10);
B=BbandsDown(20,2);
X=Rsi(14);
B>=A&&
crossup(X, 30)
<4번>
A=MA(C,20);
B=(A+AVGIF(C-A,-1,0.0)-2*sTDEVIF(C-A,-1,0.0));
X=(B*1);
CROSSUP(C,X)&&
CROSSUP(C,BBANDSDOWN(20,2))
<5번>
C < avg(C,short) && avg(C, short) < avg(C,mid)
&& avg(C,mid) < avg(C,long) &&
L < Lowest(L(1), 59)
short 5
mid 20
long 60
<6번>
A=ma(C,5);
B=ma(C,20);
X=Crossup(A, B);
최고=highestSince(1,X,H);
최고가=Valuewhen(1,최고==최고(1)&&최고>H,최고);
최저=if(B>L,1,0);
최저가=sum(최저);
Z = 최저가-valuewhen(1,X,최저가(1));
조건=crossup(c,최고가)&&Z>0;
카운트=countsince(X,조건)==1;
카운트&&!카운트(1)
<7번>
(1봉전 CROSSDOWN (BBandsC(10,2),BBandsC(40,2))) and
(0봉전 CROSSUP (C,BBandsC(10,2)))
키움수식을 예스랭귀지로 변환 가능할까요?
긴 글 읽어주셔서 감사합니다
즐거운 연말 되세요~
2024-12-26
688
글번호 186619
종목검색
답변완료
문의 드립니다!
안녕하세요!
1, 아래수식을 적용시 여러개의 파란 가로선이 발생이되는데요
이 가로선과 가로선의 간격이 3포인트(국선기준)이상일 경우에는 그 간격에 색상이 입혀지도록 수정부탁드립니다
* 색상은 사용자 지정이 기능토록 해주세요
2, 위와 관련해서 현재 캔들가격 기준 위쪽에 발생되는 색상은 빨간색, 아래쪽에 발생되는 색상은 파란색 이런식으로까지 해주시면 더욱더 감사하겠습니다
* 여의치 않을시 위 1번내용만이라도 부탁드립니다
감사합니다!!
----------------------------------------------------------------------------------
input : N(30),색1(Blue),색2(Blue),굵기1(5),굵기2(5),형태1(1),형태2(1);
input : 수직선색상(Blue),수직선굵기(1);
var : cnt(0),HH(0),LL(0),HTL1(0),LTL1(0),H1(0),L1(0),TL(0),vtl(0);
Array : HTL[100](0),LTL[100](0),HV[100](0),LV[100](0);
if Sdate != sDate[1] Then
{
value1 = sDate;
Value2 = value1[1];
Value3 = sTime;
Value4 = Value3[1];
For cnt = 1 to N
{
HV[cnt] = 0;
LV[cnt] = 0;
TL_Delete(HTL[cnt]);
TL_Delete(LTL[cnt]);
var1 = max(DayOpen(cnt),DayClose(cnt));
var2 = min(DayOpen(cnt),DayClose(cnt));
if cnt == 1 Then
{
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
HV[cnt] = var1;
TL_SetColor(HTL[cnt],색1);
TL_SetSize(HTL[cnt],굵기1);
TL_SetStyle(HTL[cnt],형태1);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
HH = var1;
LTL[cnt] = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
LV[cnt] = var2;
TL_SetColor(LTL[cnt],색2);
TL_SetSize(LTL[cnt],굵기2);
TL_SetStyle(LTL[cnt],형태2);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
LL = var2;
}
Else
{
if abs(var1-DayOpen(0)) < 10 and (var1 > HH or var1 < LL) Then
{
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
HV[cnt] = var1;
TL_SetColor(HTL[cnt],색1);
TL_SetSize(HTL[cnt],굵기1);
TL_SetStyle(HTL[cnt],형태1);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
}
if abs(Var2-DayOpen(0)) < 10 and (Var2 > HH or Var2 < LL) Then
{
LTL[cnt] = TL_New(sDate,sTime,Var2,NextBarSdate,NextBarStime,Var2);
LV[cnt] = var2;
TL_SetColor(LTL[cnt],색2);
TL_SetSize(LTL[cnt],굵기2);
TL_SetStyle(LTL[cnt],형태2);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
}
if var1 > HH and abs(var1-DayOpen(0)) < 10 Then
HH = DayHigh(cnt);
if Var2 < LL and abs(Var2-DayOpen(0)) < 10 Then
LL = DayLow(cnt);
}
var3 = max(DayOpen(cnt+1),DayClose(cnt+1));
var4 = min(DayOpen(cnt+1),DayClose(cnt+1));
if cnt == 1 Then
{
HTL1 = TL_New(Value2,value4,var3,sDate[1],sTime[1],var3);
TL_SetColor(HTL1,색1);
TL_SetSize(HTL1,굵기1);
TL_SetStyle(HTL1,형태1);
TL_SetDrawMode(HTL1,0);
H1 = var3;
LTL1 = TL_New(Value2,Value3,var4,sDate[1],sTime[1],var4);
TL_SetColor(LTL1,색2);
TL_SetSize(LTL1,굵기2);
TL_SetStyle(LTL1,형태2);
TL_SetDrawMode(LTL1,0);
L1 = var4;
}
Else
{
if abs(var3-DayOpen(1)) < 10 and (var3 > H1 or var3 < L1) Then
{
HTL1 = TL_New(Value2,value4,var3,sDate[1],sTime[1],var3);
TL_SetColor(HTL1,색1);
TL_SetSize(HTL1,굵기1);
TL_SetStyle(HTL1,형태1);
TL_SetDrawMode(HTL1,0);
}
if abs(Var4-DayOpen(1)) < 10 and (Var4 > H1 or Var4 < L1) Then
{
LTL1 = TL_New(Value2,Value3,var4,sDate[1],sTime[1],var4);
TL_SetColor(LTL1,색2);
TL_SetSize(LTL1,굵기2);
TL_SetStyle(LTL1,형태2);
TL_SetDrawMode(LTL1,0);
}
if var3 > H1 and abs(var3-DayOpen(1)) < 10 Then
H1 = Var3;
if Var2 < L1 and abs(Var2-DayOpen(0)) < 10 Then
L1 = Var4;
}
}
}
For cnt = 1 to N
{
if HV[cnt] > 0 and
((H[0] >= HV[cnt]-PriceScale*3 and H[1] < HV[cnt]-PriceScale*3) or
(L[0] <= HV[cnt]+PriceScale*3 and L[1] > HV[cnt]+PriceScale*3) or
(H[0] >= LV[cnt]-PriceScale*3 and H[1] < LV[cnt]-PriceScale*3) or
(L[0] <= LV[cnt]+PriceScale*3 and L[1] > LV[cnt]+PriceScale*3)) Then
{
vtl = TL_New(sDate,sTime,0,sDate,sTime,999999999);
TL_SetColor(vtl,수직선색상);
TL_SetSize(vTL,수직선굵기);
TL_SetDrawMode(VTL,0);
PlaySound("C:₩예스트레이더(X64)₩data₩Sound₩.wav");
}
}
2024-12-26
642
글번호 186612
지표
답변완료
도사님 도움부탁드려요.
1. 전환수치에 따라 텍스트가 찍히고나서 그후,
첫번째갱신은"매▲수★"
두번째 갱신되었을때 "매▲수★★"
세번째 갱신되었을때 "매▲수★★★" ,
매도는반대 "매▼도★" , "매▼도★★" , "매▼도★★★" 추가해주세요.
2. 아래수식 grid를 이용해서 별모양 1개 ~ 3개 찍힐시 텍스트 삽입추가해주세요.
( 차트에서 "매▲수★" 기타등등 찍힐때, grid로 "텍스트(글자변경가능하게)" 보기위함)
※ (그리드) 신호발생한 캔들에 "매▲수★"~ "매▲수★★★"찍히면,
다음봉 캔들종가까지 그리드텍스트를 뛰움. 안될시 기본으로.
※ 1번,2번수식을 하나의 차트로 합성해주세요.
input : 글꼴크기(30), 투명도(100);
var : GridID(0), 텍스트(""), 상태(0), 색상(0);
GridID = Grid_New(5, 1, 1, White, White, 1, White, 1);
Grid_SetTransparency(GridID,투명도);
# 그리드 셀 값 입력
if( LastBarOnChart() == 1 ) Then {
# 텍스트 색상 지정
if 상태 == 1 Then
색상 = Red;
If 상태 == 2 Then
색상 = Orange;
If 상태 == 3 Then
색상 = Blue;
If 상태 == 4 Then
색상 = Lime;
if 상태 == 0 Then
색상 = LightGray;
Grid_Cell(GridID,0,0,텍스트,0,0,White,색상);
Grid_CellSetTextHAlign(GridID,0,0, 2);
Grid_CellSetTextVAlign(GridID,0,0, 2);
Grid_CellSetTextSize(GridID, 0, 0, 글꼴크기);
Grid_CellSetTextBold(GridID, 0, 0, true);
}
Else
{텍스트 = "신호 없음"; 상태 = 0;}
//////////////////////////////////////////////////////////////////////////////////////
Input : 전환(0.15);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분("");
Array:고[10,4](0),저[10,4](0);
var : box(0), TL(0),TX(0),TX2(0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;
Condition2 = 고[1,1]-전환 >= LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
tx2 = Text_New(고[1,3],고[1,4],고[1,1],"매▼도");
Text_SetStyle(tx2,2,1);
Text_SetColor(tx2,Cyan);
Text_SetSize(tx2,20);
}
Else If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
Text_SetLocation(tx2,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
Plot1(고[1,1]);
NoPlot(2);
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
tx2 = Text_New(저[1,3],저[1,4],저[1,1],"매▲수");
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,Lime);
Text_SetSize(tx2,20);
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
Text_SetLocation(tx2,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
Plot2(저[1,1]);
NoPlot(1);
}
2024-12-26
631
글번호 186604
지표