예스스탁
예스스탁 답변
2020-09-16 17:44:39
안녕하세요
예스스탁입니다.
1-1
var1 = ma(L,5);
Var2 = Lowest(var1,50);
Var3 = ma(H,5);
Var4 = highest(var3,50);
if var1 == Var2 Then
Buy();
if var3 == Var4 Then
Sell();
1-2
var1 = ma(L,5);
Var2 = ma(H,5);
Plot1(var1);
Plot2(var2);
2-1
var : T(0),S(0);
var1 = ma(L,5);
Var2 = ma(H,5);
if var1 > var1[1] Then
T = 1;
if var1 < var1[1] Then
T = -1;
if var2 > var2[1] Then
S = 1;
if var2 < var2[1] Then
S = -1;
if T == 1 and T != T[1] Then
Buy();
if T == -1 and T != T[1] Then
Sell();
3
Input:전환가격(10),종가사용여부(1),파동선두께(2),수치표시(1),소수(0);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0);
var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0);
var : TX11(0),TX12(0),TX13(0),TX14(0),TX15(0),TX16(0),TX17(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부 == 1,C,H);
LL = IFF(종가사용여부 == 1,C,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;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
var1 = 고[2,1];
var2 = 고[2,1]-(고[2,1]-저[1,1])*0.236;
var3 = 고[2,1]-(고[2,1]-저[1,1])*0.382;
var4 = 고[2,1]-(고[2,1]-저[1,1])*0.500;
var5 = 고[2,1]-(고[2,1]-저[1,1])*0.618;
var6 = 고[2,1]-(고[2,1]-저[1,1])*0.764;
var7 = 저[1,1];
TL11 = TL_New(고[2,3],고[2,4],var1,sDate,sTime,var1);
TL12 = TL_New(고[2,3],고[2,4],var2,sDate,sTime,var2);
TL13 = TL_New(고[2,3],고[2,4],var3,sDate,sTime,var3);
TL14 = TL_New(고[2,3],고[2,4],var4,sDate,sTime,var4);
TL15 = TL_New(고[2,3],고[2,4],var5,sDate,sTime,var5);
TL16 = TL_New(고[2,3],고[2,4],var6,sDate,sTime,var6);
TL17 = TL_New(고[2,3],고[2,4],var7,sDate,sTime,var7);
TL_SetColor(TL11,RED);
TL_SetColor(TL12,RED);
TL_SetColor(TL13,RED);
TL_SetColor(TL14,RED);
TL_SetColor(TL15,RED);
TL_SetColor(TL16,RED);
TL_SetColor(TL17,RED);
TL_SetExtRight(TL11,true);
TL_SetExtRight(TL12,true);
TL_SetExtRight(TL13,true);
TL_SetExtRight(TL14,true);
TL_SetExtRight(TL15,true);
TL_SetExtRight(TL16,true);
TL_SetExtRight(TL17,true);
TL_SetExtLeft(TL11,true);
TL_SetExtLeft(TL12,true);
TL_SetExtLeft(TL13,true);
TL_SetExtLeft(TL14,true);
TL_SetExtLeft(TL15,true);
TL_SetExtLeft(TL16,true);
TL_SetExtLeft(TL17,true);
Text_Delete(tX11);
Text_Delete(tX12);
Text_Delete(tX13);
Text_Delete(tX14);
Text_Delete(tX15);
Text_Delete(tX16);
Text_Delete(tX17);
TX11 = Text_New(sDate,sTime,var1,NumToStr(var1,소수));
TX12 = Text_New(sDate,sTime,var2,NumToStr(var2,소수));
TX13 = Text_New(sDate,sTime,var3,NumToStr(var3,소수));
TX14 = Text_New(sDate,sTime,var4,NumToStr(var4,소수));
TX15 = Text_New(sDate,sTime,var5,NumToStr(var5,소수));
TX16 = Text_New(sDate,sTime,var6,NumToStr(var6,소수));
TX17 = Text_New(sDate,sTime,var7,NumToStr(var7,소수));
Text_SetStyle(TX11,0,1);
Text_SetStyle(TX12,0,1);
Text_SetStyle(TX13,0,1);
Text_SetStyle(TX14,0,1);
Text_SetStyle(TX15,0,1);
Text_SetStyle(TX16,0,1);
Text_SetStyle(TX17,0,1);
Text_SetColor(TX11,RED);
Text_SetColor(TX12,RED);
Text_SetColor(TX13,RED);
Text_SetColor(TX14,RED);
Text_SetColor(TX15,RED);
Text_SetColor(TX16,RED);
Text_SetColor(TX17,RED);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 1);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Red);
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,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;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
var1 = 고[1,1];
var2 = 고[1,1]-(고[1,1]-저[2,1])*0.236;
var3 = 고[1,1]-(고[1,1]-저[2,1])*0.382;
var4 = 고[1,1]-(고[1,1]-저[2,1])*0.500;
var5 = 고[1,1]-(고[1,1]-저[2,1])*0.618;
var6 = 고[1,1]-(고[1,1]-저[2,1])*0.764;
var7 = 저[2,1];
TL11 = TL_New(저[2,3],저[2,4],var1,sDate,sTime,var1);
TL12 = TL_New(저[2,3],저[2,4],var2,sDate,sTime,var2);
TL13 = TL_New(저[2,3],저[2,4],var3,sDate,sTime,var3);
TL14 = TL_New(저[2,3],저[2,4],var4,sDate,sTime,var4);
TL15 = TL_New(저[2,3],저[2,4],var5,sDate,sTime,var5);
TL16 = TL_New(저[2,3],저[2,4],var6,sDate,sTime,var6);
TL17 = TL_New(저[2,3],저[2,4],var7,sDate,sTime,var7);
TL_SetColor(TL11,BLUE);
TL_SetColor(TL12,BLUE);
TL_SetColor(TL13,BLUE);
TL_SetColor(TL14,BLUE);
TL_SetColor(TL15,BLUE);
TL_SetColor(TL16,BLUE);
TL_SetColor(TL17,BLUE);
TL_SetExtRight(TL11,true);
TL_SetExtRight(TL12,true);
TL_SetExtRight(TL13,true);
TL_SetExtRight(TL14,true);
TL_SetExtRight(TL15,true);
TL_SetExtRight(TL16,true);
TL_SetExtRight(TL17,true);
TL_SetExtLeft(TL11,true);
TL_SetExtLeft(TL12,true);
TL_SetExtLeft(TL13,true);
TL_SetExtLeft(TL14,true);
TL_SetExtLeft(TL15,true);
TL_SetExtLeft(TL16,true);
TL_SetExtLeft(TL17,true);
Text_Delete(tX11);
Text_Delete(tX12);
Text_Delete(tX13);
Text_Delete(tX14);
Text_Delete(tX15);
Text_Delete(tX16);
Text_Delete(tX17);
TX11 = Text_New(sDate,sTime,var1,NumToStr(var1,소수));
TX12 = Text_New(sDate,sTime,var2,NumToStr(var2,소수));
TX13 = Text_New(sDate,sTime,var3,NumToStr(var3,소수));
TX14 = Text_New(sDate,sTime,var4,NumToStr(var4,소수));
TX15 = Text_New(sDate,sTime,var5,NumToStr(var5,소수));
TX16 = Text_New(sDate,sTime,var6,NumToStr(var6,소수));
TX17 = Text_New(sDate,sTime,var7,NumToStr(var7,소수));
Text_SetStyle(TX11,0,1);
Text_SetStyle(TX12,0,1);
Text_SetStyle(TX13,0,1);
Text_SetStyle(TX14,0,1);
Text_SetStyle(TX15,0,1);
Text_SetStyle(TX16,0,1);
Text_SetStyle(TX17,0,1);
Text_SetColor(TX11,BLUE);
Text_SetColor(TX12,BLUE);
Text_SetColor(TX13,BLUE);
Text_SetColor(TX14,BLUE);
Text_SetColor(TX15,BLUE);
Text_SetColor(TX16,BLUE);
Text_SetColor(TX17,BLUE);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],
NumToStr(저[1,1],소수)+"("+NumToStr((저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((저[1,1]-저[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 0);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Blue);
}
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;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,
NumToStr(저[1,1],소수)+"("+NumToStr(abs(저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
}
}
최종꼭지점 = "저점";
}
Text_SetLocation(tx11,NextBarSdate,NextBarStime,var1);
Text_SetLocation(tx12,NextBarSdate,NextBarStime,var2);
Text_SetLocation(tx13,NextBarSdate,NextBarStime,var3);
Text_SetLocation(tx14,NextBarSdate,NextBarStime,var4);
Text_SetLocation(tx15,NextBarSdate,NextBarStime,var5);
Text_SetLocation(tx16,NextBarSdate,NextBarStime,var6);
Text_SetLocation(tx17,NextBarSdate,NextBarStime,var7);
4
Input:전환가격(10),종가사용여부(1),파동선두께(2),수치표시(1),소수(0);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0);
var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0);
var : TX11(0),TX12(0),TX13(0),TX14(0),TX15(0),TX16(0),TX17(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부 == 1,C,H);
LL = IFF(종가사용여부 == 1,C,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;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
var1 = 고[1,1];
var2 = 고[1,1]-(고[1,1]-저[1,1])*0.236;
var3 = 고[1,1]-(고[1,1]-저[1,1])*0.382;
var4 = 고[1,1]-(고[1,1]-저[1,1])*0.500;
var5 = 고[1,1]-(고[1,1]-저[1,1])*0.618;
var6 = 고[1,1]-(고[1,1]-저[1,1])*0.764;
var7 = 저[1,1];
TL11 = TL_New(고[1,3],고[1,4],var1,sDate,sTime,var1);
TL12 = TL_New(고[1,3],고[1,4],var2,sDate,sTime,var2);
TL13 = TL_New(고[1,3],고[1,4],var3,sDate,sTime,var3);
TL14 = TL_New(고[1,3],고[1,4],var4,sDate,sTime,var4);
TL15 = TL_New(고[1,3],고[1,4],var5,sDate,sTime,var5);
TL16 = TL_New(고[1,3],고[1,4],var6,sDate,sTime,var6);
TL17 = TL_New(고[1,3],고[1,4],var7,sDate,sTime,var7);
TL_SetColor(TL11,RED);
TL_SetColor(TL12,RED);
TL_SetColor(TL13,RED);
TL_SetColor(TL14,RED);
TL_SetColor(TL15,RED);
TL_SetColor(TL16,RED);
TL_SetColor(TL17,RED);
TL_SetExtRight(TL11,true);
TL_SetExtRight(TL12,true);
TL_SetExtRight(TL13,true);
TL_SetExtRight(TL14,true);
TL_SetExtRight(TL15,true);
TL_SetExtRight(TL16,true);
TL_SetExtRight(TL17,true);
TL_SetExtLeft(TL11,true);
TL_SetExtLeft(TL12,true);
TL_SetExtLeft(TL13,true);
TL_SetExtLeft(TL14,true);
TL_SetExtLeft(TL15,true);
TL_SetExtLeft(TL16,true);
TL_SetExtLeft(TL17,true);
Text_Delete(tX11);
Text_Delete(tX12);
Text_Delete(tX13);
Text_Delete(tX14);
Text_Delete(tX15);
Text_Delete(tX16);
Text_Delete(tX17);
TX11 = Text_New(sDate,sTime,var1,NumToStr(var1,소수));
TX12 = Text_New(sDate,sTime,var2,NumToStr(var2,소수));
TX13 = Text_New(sDate,sTime,var3,NumToStr(var3,소수));
TX14 = Text_New(sDate,sTime,var4,NumToStr(var4,소수));
TX15 = Text_New(sDate,sTime,var5,NumToStr(var5,소수));
TX16 = Text_New(sDate,sTime,var6,NumToStr(var6,소수));
TX17 = Text_New(sDate,sTime,var7,NumToStr(var7,소수));
Text_SetStyle(TX11,0,1);
Text_SetStyle(TX12,0,1);
Text_SetStyle(TX13,0,1);
Text_SetStyle(TX14,0,1);
Text_SetStyle(TX15,0,1);
Text_SetStyle(TX16,0,1);
Text_SetStyle(TX17,0,1);
Text_SetColor(TX11,RED);
Text_SetColor(TX12,RED);
Text_SetColor(TX13,RED);
Text_SetColor(TX14,RED);
Text_SetColor(TX15,RED);
Text_SetColor(TX16,RED);
Text_SetColor(TX17,RED);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 1);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Red);
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
var1 = 고[1,1];
var2 = 고[1,1]-(고[1,1]-저[1,1])*0.236;
var3 = 고[1,1]-(고[1,1]-저[1,1])*0.382;
var4 = 고[1,1]-(고[1,1]-저[1,1])*0.500;
var5 = 고[1,1]-(고[1,1]-저[1,1])*0.618;
var6 = 고[1,1]-(고[1,1]-저[1,1])*0.764;
var7 = 저[1,1];
TL_SetBegin(TL11,저[1,3],저[1,4],var1);
TL_SetBegin(TL12,저[1,3],저[1,4],var2);
TL_SetBegin(TL13,저[1,3],저[1,4],Var3);
TL_SetBegin(TL14,저[1,3],저[1,4],var4);
TL_SetBegin(TL15,저[1,3],저[1,4],Var5);
TL_SetBegin(TL16,저[1,3],저[1,4],Var6);
TL_SetBegin(TL17,저[1,3],저[1,4],Var7);
TL_SetEnd(TL11,고[1,3],고[1,4],var1);
TL_SetEnd(TL12,고[1,3],고[1,4],var2);
TL_SetEnd(TL13,고[1,3],고[1,4],Var3);
TL_SetEnd(TL14,고[1,3],고[1,4],var4);
TL_SetEnd(TL15,고[1,3],고[1,4],Var5);
TL_SetEnd(TL16,고[1,3],고[1,4],Var6);
TL_SetEnd(TL17,고[1,3],고[1,4],Var7);
Text_SetString(TX11,NumToStr(var1,소수));
Text_SetString(TX12,NumToStr(var2,소수));
Text_SetString(TX13,NumToStr(var3,소수));
Text_SetString(TX14,NumToStr(var4,소수));
Text_SetString(TX15,NumToStr(var5,소수));
Text_SetString(TX16,NumToStr(var6,소수));
Text_SetString(TX17,NumToStr(var7,소수));
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,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;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
var1 = 고[1,1];
var2 = 고[1,1]-(고[1,1]-저[1,1])*0.236;
var3 = 고[1,1]-(고[1,1]-저[1,1])*0.382;
var4 = 고[1,1]-(고[1,1]-저[1,1])*0.500;
var5 = 고[1,1]-(고[1,1]-저[1,1])*0.618;
var6 = 고[1,1]-(고[1,1]-저[1,1])*0.764;
var7 = 저[1,1];
TL11 = TL_New(저[1,3],저[1,4],var1,sDate,sTime,var1);
TL12 = TL_New(저[1,3],저[1,4],var2,sDate,sTime,var2);
TL13 = TL_New(저[1,3],저[1,4],var3,sDate,sTime,var3);
TL14 = TL_New(저[1,3],저[1,4],var4,sDate,sTime,var4);
TL15 = TL_New(저[1,3],저[1,4],var5,sDate,sTime,var5);
TL16 = TL_New(저[1,3],저[1,4],var6,sDate,sTime,var6);
TL17 = TL_New(저[1,3],저[1,4],var7,sDate,sTime,var7);
TL_SetColor(TL11,BLUE);
TL_SetColor(TL12,BLUE);
TL_SetColor(TL13,BLUE);
TL_SetColor(TL14,BLUE);
TL_SetColor(TL15,BLUE);
TL_SetColor(TL16,BLUE);
TL_SetColor(TL17,BLUE);
TL_SetExtRight(TL11,true);
TL_SetExtRight(TL12,true);
TL_SetExtRight(TL13,true);
TL_SetExtRight(TL14,true);
TL_SetExtRight(TL15,true);
TL_SetExtRight(TL16,true);
TL_SetExtRight(TL17,true);
TL_SetExtLeft(TL11,true);
TL_SetExtLeft(TL12,true);
TL_SetExtLeft(TL13,true);
TL_SetExtLeft(TL14,true);
TL_SetExtLeft(TL15,true);
TL_SetExtLeft(TL16,true);
TL_SetExtLeft(TL17,true);
Text_Delete(tX11);
Text_Delete(tX12);
Text_Delete(tX13);
Text_Delete(tX14);
Text_Delete(tX15);
Text_Delete(tX16);
Text_Delete(tX17);
TX11 = Text_New(sDate,sTime,var1,NumToStr(var1,소수));
TX12 = Text_New(sDate,sTime,var2,NumToStr(var2,소수));
TX13 = Text_New(sDate,sTime,var3,NumToStr(var3,소수));
TX14 = Text_New(sDate,sTime,var4,NumToStr(var4,소수));
TX15 = Text_New(sDate,sTime,var5,NumToStr(var5,소수));
TX16 = Text_New(sDate,sTime,var6,NumToStr(var6,소수));
TX17 = Text_New(sDate,sTime,var7,NumToStr(var7,소수));
Text_SetStyle(TX11,0,1);
Text_SetStyle(TX12,0,1);
Text_SetStyle(TX13,0,1);
Text_SetStyle(TX14,0,1);
Text_SetStyle(TX15,0,1);
Text_SetStyle(TX16,0,1);
Text_SetStyle(TX17,0,1);
Text_SetColor(TX11,BLUE);
Text_SetColor(TX12,BLUE);
Text_SetColor(TX13,BLUE);
Text_SetColor(TX14,BLUE);
Text_SetColor(TX15,BLUE);
Text_SetColor(TX16,BLUE);
Text_SetColor(TX17,BLUE);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],
NumToStr(저[1,1],소수)+"("+NumToStr((저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((저[1,1]-저[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 0);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Blue);
}
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;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
var1 = 고[1,1];
var2 = 고[1,1]-(고[1,1]-저[1,1])*0.236;
var3 = 고[1,1]-(고[1,1]-저[1,1])*0.382;
var4 = 고[1,1]-(고[1,1]-저[1,1])*0.500;
var5 = 고[1,1]-(고[1,1]-저[1,1])*0.618;
var6 = 고[1,1]-(고[1,1]-저[1,1])*0.764;
var7 = 저[1,1];
TL_SetBegin(TL11,고[1,3],고[1,4],var1);
TL_SetBegin(TL12,고[1,3],고[1,4],var2);
TL_SetBegin(TL13,고[1,3],고[1,4],Var3);
TL_SetBegin(TL14,고[1,3],고[1,4],var4);
TL_SetBegin(TL15,고[1,3],고[1,4],Var5);
TL_SetBegin(TL16,고[1,3],고[1,4],Var6);
TL_SetBegin(TL17,고[1,3],고[1,4],Var7);
TL_SetEnd(TL11,저[1,3],저[1,4],var1);
TL_SetEnd(TL12,저[1,3],저[1,4],var2);
TL_SetEnd(TL13,저[1,3],저[1,4],Var3);
TL_SetEnd(TL14,저[1,3],저[1,4],var4);
TL_SetEnd(TL15,저[1,3],저[1,4],Var5);
TL_SetEnd(TL16,저[1,3],저[1,4],Var6);
TL_SetEnd(TL17,저[1,3],저[1,4],Var7);
Text_SetString(TX11,NumToStr(var1,소수));
Text_SetString(TX12,NumToStr(var2,소수));
Text_SetString(TX13,NumToStr(var3,소수));
Text_SetString(TX14,NumToStr(var4,소수));
Text_SetString(TX15,NumToStr(var5,소수));
Text_SetString(TX16,NumToStr(var6,소수));
Text_SetString(TX17,NumToStr(var7,소수));
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,
NumToStr(저[1,1],소수)+"("+NumToStr(abs(저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
}
}
최종꼭지점 = "저점";
}
Text_SetLocation(tx11,NextBarSdate,NextBarStime,var1);
Text_SetLocation(tx12,NextBarSdate,NextBarStime,var2);
Text_SetLocation(tx13,NextBarSdate,NextBarStime,var3);
Text_SetLocation(tx14,NextBarSdate,NextBarStime,var4);
Text_SetLocation(tx15,NextBarSdate,NextBarStime,var5);
Text_SetLocation(tx16,NextBarSdate,NextBarStime,var6);
Text_SetLocation(tx17,NextBarSdate,NextBarStime,var7);
즐거운 하루되세요
> harrywin 님이 쓴 글입니다.
> 제목 : 수식좀 부탁드립니다
> 1) 시스템과 지표수식 두개씩 부탁드립니다.
1 매수 : 50개봉중 5일 평균 최저가
2 매도 : 50개봉중 5일 평균 최고가
2)시스템과 지표수식 두개씩 부탁드립니다.
1 매수 : 5일 평균 최저가 / 하락하다가 상승할때
2 매도 : 5일 평균 최고가 / 상승하다가 하락할때
3) 아래의 수식에서 그림처럼 직전 파동의 고점 혹은 저점기준 피보나치 수치라인을 추가 부탁드립니다.
4) 아래의 수식에서 가장최근 파동의 고점 혹은 저점기준 피보나치 수치라인을 추가 부탁드립니다.(이경우 최근 파동이 늦어지기에 피보나치도 늦게서야 나오겠지요)
Input:전환가격(10),종가사용여부(1),파동선두께(2),수치표시(1),소수(0);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부 == 1,C,H);
LL = IFF(종가사용여부 == 1,C,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;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 1);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Red);
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,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;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],
NumToStr(저[1,1],소수)+"("+NumToStr((저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((저[1,1]-저[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 0);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Blue);
}
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;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,
NumToStr(저[1,1],소수)+"("+NumToStr(abs(저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
}
}
최종꼭지점 = "저점";
}