답변완료
쌍바닥 고점 조건
Input : 전환(0.15);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),TL(0),TL1(0),TX(0),TX2(0),T(0);
Array:고[10,4](0),저[10,4](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;
TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Red);
if 저[1,1] <=highest(H,500)-0.9 and max(저[1,1],저[2,1]) <= min(저[1,1],저[2,1])+PriceScale*1 Then
{
tx2 = Text_New(저[1,3],저[1,4],저[1,1]-0.1,"●");
Text_SetStyle(tx2,2,2);
Text_SetColor(tx2,Blue);
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;
TL_SetEnd(TL,고[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;
TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Green);
if 고[1,1] <= 고[2,1] + PriceScale* 0 and 고[1,1] >= 고[2,1] - PriceScale* 1 Then
{
tx2 = Text_New(고[1,3],고[1,4],고[1,1]+0.07,"●");
Text_SetStyle(tx2,2,2);
Text_SetColor(tx2,Green);
Text_SetSize(tx2,10);
}
}
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(TL,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
Plot2(저[1,1]);
NoPlot(1);
}
쌍바닥 조건에서만 (다른 지표는 그대로),
500봉 전을, 전일은 무시하고 당일에서만(시초부터만) 500봉 전으로 수정. 감사합니다.
2024-05-26
764
글번호 179949
지표
답변완료
질문 요청 드립니다. (강조지표)
* 좋은 주말 되십시요.
* 아래 수식에서 0선을 기준으로 싸이클이 형성 되는데
사이클 기준으로 중심선좀 부탁 드립니다.
즉 싸이클 처음부터 마지막 봉 사이를 중심값 수평선으로 표시 OR 강조봉지표
혹시 싸이클 이 작을 수 있으니 싸이클 봉이 최소 10개 이상인 싸이클만
표시 부탁 드립니다.
즉 0 보다 클 경우 0 ~ 최대값 까지 중심값 수평선으로 표시 or 강조 형식으로
0 보다 작을경우 0 ~ 최소값 까지 중심값 수평선으로 표시 or 강조 형식으로
안녕하세요
예스스탁입니다.
input:P1(5),P2(10),N(10);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL12(0),TL13(0),TL14(0),TL15(0),T(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
var : TL24(0),TL25(0);
var : mav1(0),mav2(0);
#==========================================#
mav1 = ma(C,P1);
mav2 = ma(C,P2);
Plot1(mav1);
plot2(mav2);
HH = IFF(0==1,C,H);
LL = IFF(0==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = CrossDown(mav1,mav2) and 최종고가 <> HH;
Condition2 = CrossUp(mav1,mav2) and 최종저가 <> LL;
처리구분 = "";
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
{
T = 1;
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = highest(H,N);
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 1 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 0, 1);
Text_SetColor(Text1,WHITE);
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,WHITE);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 1 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
T = -1;
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = Lowest(L,N);
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 1 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 0, 0);
Text_SetColor(Text1,WHITE);
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,WHITE);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 1 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
if T == 1 and T[1] != T Then
{
TL2 = TL_New(고[2,3],고[2,4],고[2,1],NextBarSdate,NextBarStime,고[2,1]);
TL12 = TL_New(고[2,3],고[2,4],고[2,1],NextBarSdate,NextBarStime,고[2,1]);
TL_SetSize(TL2,3);
TL_SetColor(TL2,RED);
TL_SetSize(TL12,1);
TL_SetColor(TL12,RED);
if min(C,mav1,mav2) > 고[2,1] Then
{
TL_SetColor(TL2,pink);
TL_SetColor(TL12,pink);
}
TL_Delete(TL24);
TL_Delete(TL25);
TL24 = TL_New(저[1,3],저[1,4],저[1,1]+abs(고[2,1]-저[2,1]),sdate,stime,저[1,1]+abs(고[2,1]-저[2,1]));
TL25 = TL_New(저[1,3],저[1,4],저[1,1]+abs(고[3,1]-저[3,1]),sdate,stime,저[1,1]+abs(고[3,1]-저[3,1]));
TL_SetExtRight(TL24,true);
TL_SetExtRight(TL25,true);
TL_SetSize(TL24,0);
TL_SetStyle(TL24,3);
TL_SetColor(TL24,Red);
TL_SetSize(TL25,0);
TL_SetStyle(TL25,3);
TL_SetColor(TL25,Red);
}
Else
{
TL_SetEnd(TL2,sDate,sTime,고[2,1]);
TL_SetEnd(TL12,sDate,sTime,고[2,1]);
if min(C,mav1,mav2) > 고[2,1] Then
{
TL_SetColor(TL2,pink);
TL_SetColor(TL12,pink);
}
}
if T == -1 and T[1] != T Then
{
TL3 = TL_New(저[2,3],저[2,4],저[2,1],NextBarSdate,NextBarStime,저[2,1]);
TL13 = TL_New(저[2,3],저[2,4],저[2,1],NextBarSdate,NextBarStime,저[2,1]);
TL_SetSize(TL3,3);
TL_SetColor(TL3,RED);
TL_SetSize(TL13,1);
TL_SetColor(TL13,RED);
if max(c,mav1,mav2) < 저[2,1] Then
{
TL_SetColor(TL3,pink);
TL_SetColor(TL13,pink);
}
TL_Delete(TL24);
TL_Delete(TL25);
TL24 = TL_New(고[1,3],고[1,4],고[1,1]-abs(고[2,1]-저[2,1]),sdate,stime,고[1,1]-abs(고[2,1]-저[2,1]));
TL25 = TL_New(고[1,3],고[1,4],고[1,1]-abs(고[3,1]-저[3,1]),sdate,stime,고[1,1]-abs(고[3,1]-저[3,1]));
TL_SetExtRight(TL24,true);
TL_SetExtRight(TL25,true);
TL_SetSize(TL24,0);
TL_SetStyle(TL24,3);
TL_SetColor(TL24,blue);
TL_SetSize(TL25,0);
TL_SetStyle(TL25,3);
TL_SetColor(TL25,blue);
}
Else
{
TL_SetEnd(TL3,sDate,sTime,저[2,1]);
TL_SetEnd(TL13,sDate,sTime,저[2,1]);
if max(c,mav1,mav2) < 저[2,1] Then
{
TL_SetColor(TL3,Brown);
TL_SetColor(TL13,Brown);
}
}
즐거운 하루되세요
안녕하세요
예스스탁입니다.
소리를 출력하는 playsound함수는 if조건이 만족하면 계속 소리가 출력이 됩니다.
초단위로 소리를 제어하지는 못합니다.
아래 내용으로만 작성이 가능합니다.
정배열 첫봉, 역배열 첫봉에서만 소리출력
정배열 모든봉, 역배열 모든봉에서만 소리출력
소리출력함수(playsound)는 함수내에 지정한 경로의 wav파일이 구동됩니다.
아래는 예스트레이더에 기본으로 제공되는 wav파일을 지정했습니다.
원하시는 wav파일의 경로와 이름으로 수정하시기 바랍니다.
게시판에서 식을 복사할 경우 경로명 중 ₩의 폰트가 깨질수 있으므로
₩는 다시 타이핑하시기 바랍니다.
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav");
1
input : P1(5),P2(10),P3(20),P4(30),P5(40),P6(50),P7(60),P8(120),P9(240);
var1 = ma(c,P1);
var2 = ma(c,P2);
var3 = ma(c,P3);
var4 = ma(c,P4);
var5 = ma(c,P5);
var6 = ma(c,P6);
var7 = ma(c,P7);
var8 = ma(c,P8);
var9 = ma(c,P9);
Condition1 = var1 > Var2 and Var2 > Var3 and Var3 > Var4 and Var4 > Var5 and Var5 > Var6 and Var6 > Var7 and Var7 < Var8 and Var8 > Var9;
Condition2 = var1 < Var2 and Var2 < Var3 and Var3 < Var4 and Var4 < Var5 and Var5 < Var6 and Var6 < Var7 and Var7 < Var8 and Var8 < Var9;
if Condition1 == true and Condition1 == False Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if Condition2 == true and Condition2 == False Then
PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav");
2
input : P1(5),P2(10),P3(20),P4(30),P5(40),P6(50),P7(60),P8(120),P9(240);
var1 = ma(c,P1);
var2 = ma(c,P2);
var3 = ma(c,P3);
var4 = ma(c,P4);
var5 = ma(c,P5);
var6 = ma(c,P6);
var7 = ma(c,P7);
var8 = ma(c,P8);
var9 = ma(c,P9);
Condition1 = var1 > Var2 and Var2 > Var3 and Var3 > Var4 and Var4 > Var5 and Var5 > Var6 and Var6 > Var7 and Var7 < Var8 and Var8 > Var9;
Condition2 = var1 < Var2 and Var2 < Var3 and Var3 < Var4 and Var4 < Var5 and Var5 < Var6 and Var6 < Var7 and Var7 < Var8 and Var8 < Var9;
if Condition1 == true Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if Condition2 == true Then
PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav");
즐거운 하루되세요
2024-10-05
805
글번호 179942
지표