커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7251
글번호 230811
답변완료
2개의 지표부탁드립니다 합처서 하나의지표로
1번지표 2지표는 하나의지표로 구현 부탁드려요
## 3번 은 이평을 60 120 이평을 추가 부탁드려요
1, 1번지표
Input : P1(11),P2(12),P3(13),P4(14),P5(15),P6(16),P7(17),P8(18),P9(19),P10(20),P11(21),P12(22),P13(23),P14(24),P15(25);
if ema(c,p1)>ema(c,p1)[1] Then
Plot1(Ema(C,P1), "이동평균1",rgb(242,115,60));
Else
Plot1(Ema(C,P1), "이동평균1",rgb(119,108,217));
if ema(c,p2)>ema(c,p2)[1] Then
Plot2(Ema(C,P2), "이동평균2",rgb(242,115,60));
Else
Plot2(Ema(C,P2), "이동평균2",rgb(119,108,217));
if ema(c,p3)>ema(c,p3)[1] Then
Plot3(Ema(C,P3), "이동평균3",rgb(242,115,60));
Else
Plot3(Ema(C,P3), "이동평균3",rgb(119,108,217));
if ema(c,p4)>ema(c,p4)[1] Then
Plot4(Ema(C,P4), "이동평균4",rgb(242,115,60));
Else
Plot4(Ema(C,P4), "이동평균4",rgb(119,108,217));
if ema(c,p5)>ema(c,p5)[1] Then
Plot5(Ema(C,P5), "이동평균5",rgb(242,115,60));
Else
Plot5(Ema(C,P5), "이동평균5",rgb(119,108,217));
if ema(c,p6)>ema(c,p6)[1] Then
Plot6(Ema(C,P6), "이동평균6",rgb(242,115,60));
Else
Plot6(Ema(C,P6), "이동평균6",rgb(119,108,217));
if ema(c,p7)>ema(c,p7)[1] Then
Plot7(Ema(C,P7), "이동평균7",rgb(242,115,60));
Else
Plot7(Ema(C,P7), "이동평균7",rgb(119,108,217));
if ema(c,p8)>ema(c,p8)[1] Then
Plot8(Ema(C,P8), "이동평균8",rgb(242,115,60));
Else
Plot8(Ema(C,P8), "이동평균8",rgb(119,108,217));
if ema(c,p9)>ema(c,p9)[1] Then
Plot9(Ema(C,P9), "이동평균9",rgb(242,115,60));
Else
Plot9(Ema(C,P9), "이동평균9",rgb(119,108,217));
if ema(c,p10)>ema(c,p10)[1] Then
Plot10(Ema(C,P10), "이동평균10",rgb(242,115,60));
Else
Plot10(Ema(C,P10), "이동평균10",rgb(119,108,217));
if ema(c,p11)>ema(c,p11)[1] Then
Plot11(Ema(C,P11), "이동평균11",rgb(242,115,60));
Else
Plot11(Ema(C,P11), "이동평균11",rgb(119,108,217));
if ema(c,p12)>ema(c,p12)[1] Then
Plot12(Ema(C,P12), "이동평균12",rgb(242,115,60));
Else
Plot12(Ema(C,P12), "이동평균12",rgb(119,108,217));
if ema(c,p13)>ema(c,p13)[1] Then
Plot13(Ema(C,P13), "이동평균13",rgb(242,115,60));
Else
Plot13(Ema(C,P13), "이동평균13",rgb(119,108,217));
if ema(c,p14)>ema(c,p14)[1] Then
Plot14(Ema(C,P14), "이동평균14",rgb(242,115,60));
Else
Plot14(Ema(C,P14), "이동평균14",rgb(119,108,217));
if ema(c,p15)>ema(c,p15)[1] Then
Plot15(Ema(C,P15), "이동평균15",rgb(242,115,60));
Else
Plot15(Ema(C,P15), "이동평균15",rgb(119,108,217));
2,2번지표
input : P1(10),P2(20),P3(60),P4(120),P5(240);
var1 = ma(C,P1);
var2 = ma(C,P2);
var3 = ma(C,P3);
var4 = ma(C,P4);
var5 = ma(C,P5);
value1 = max(var1,var2,var3,var4,var5);
value2 = min(var1,var2,var3,var4,var5);
if value1 <= value2*1.10 then{
plot1(var1,"이평1",BLACK);
plot2(var2,"이평2",BLACK);
plot3(var3,"이평3",BLACK);
plot4(var4,"이평4",BLACK);
plot5(var5,"이평5",BLACK);
}
Else
{
plot1(var1,"이평1",iff(var1>var1[1],red,blue));
plot2(var2,"이평2",iff(var2>var2[1],red,blue));
plot3(var3,"이평3",iff(var3>var3[1],red,blue));
plot4(var4,"이평4",iff(var4>var4[1],red,blue));
plot5(var5,"이평5",iff(var5>var5[1],red,blue));
}
3번, 60이평 120 이평 두
이평은 상승은 레드 하락은 블루 선으로 표현 부탁 드려요
60 ,120 이평을 추가 하여 부탁드려요
input : P(20);
var1 = ma(C,P);
var2 = var1-var1[1];
if var2 > 0 Then
plot1(var2,"등락",RED);
Else
plot1(var2,"등락",blue);
2018-04-02
370
글번호 117827
답변완료
부탁드립니다
아래수식으로 강조 부탁드립니다
모든 진입신호 허용 조건으로 부탁드립니다
if dayhigh(0) > dayhigh(0)[1] Then
buy();
if daylow(0) < daylow(0)[1] Then
exitlong();
2018-04-01
338
글번호 117826
답변완료
시스템식 문의드립니다.
수식문의드립니다.
도움부탁드립니다.
1. 매수 조건
아래조건을 만족하면 매수조건완성입니다. 매수조건을 완성한 시점의 저가를 기준으로 윗방향으로 50틱이상 상승했으면 더이상 매수신호가 안나오게 하려고 합니다. 윗방향으로 갔을시에만 조건만족
If (T1[1] == -1 or t1[1] == 0) and T1 == 1
2. 매도 조건
아래조건을 만족하면 매도조건완성입니다. 매도조건을 완성한 시점의 고가를 기준으로 아래방향으로 50틱이상 하락했으면 더이상 매도신호가 안나오게 막으려고 합니다. 아래방향으로 갔을시에만 조건만족
If (t3[1] == 1 or t3[1] == 0) and t3 == -1
2018-03-31
332
글번호 117825
답변완료
누적손익률을 차트에 저장시키고 싶은데 방법이 없을까요?
for value5 = TotalTrades() downto 0
{var5=(EntryPrice()[value5]-exitprice[value5])/entryprice()[value5];
value6= value6+ var5;
}
이런식으로 수식을 만들었는데 어떻게 정상적으로 작동이 안돼서 질문올립니다!
2018-03-31
323
글번호 117824
답변완료
문의 드립니다.
질문1) obv지표를 거래량 대신 거래대금으로 대체한 지표수식을 알고 싶습니다.
질문2) 위의 지표를 당일9시부터 시작하는 당일지표로 하여 장중 최대치와 최소치를 구하는 수식.
질문3) 위의 지표로 특정날짜를 기준으로 하여 금일의 장중까지의 최대누적치와 최소누적치를 구하는 수식
질문4) 차트창 아래쪽에 추가한 지표창이나 참조데이터창에 키움증권의 "신호검색"처럼 시스템수식이 아닌 그냥 매수나 매도의 화살표신호를 넣을 수 있는지, 아니면 그와 비슷한 효과를 낼 수 있는 방법이라도 있다면 좀 알려 주시기 바랍니다. 예스트레이더에 키움증권의 "신호검색"이나 "강세 약세"같은 방법을 사용할 수 있다면 훨씬 좋겠습니다.
2018-04-01
367
글번호 117823
답변완료
수식 문의드립니다.
지정 스탑에 대해서 문의 드립니다.
진입시...
Buy("1", AtStop ); 으로 진입하였습니다.
특정 조건에서 40% 수익이 발생하면 청산하려고 아래와 같이 로직을 작성하였습니다.
If
M > 8
Then
{
SetStopProfittarget(40,PercentStop) ;
}
그런데 해당 조건에서 SetStopProfittarget 이 발생하지 않습니다.
혹시 AtStop 과 SetStopProfittarget 이 안맞는걸까요?
아님 수식이 잘못 됐을까요...
목적은 atstop 으로 진입한 후, 40% 수익이 발생하면 청산하고자 합니다.
감사합니다. ㅜㅜ
2018-03-31
334
글번호 117822
답변완료
수식작성 질문드립니다.
100일 고점에서 40% 떨어졌을 경우 첫 매수하고, 이후에 진입가격의 평균에서 10%씩 떨어질 때마다 계속 분할매수 한 후에, 진입가격 평균에서 20% 올랐을때 전량 청산을 하는 식을 만든다면 어떻게 만들어야 하나요?
2018-03-30
319
글번호 117821
답변완료
수식요청 드립이다.
안녕하세요.
연결선물 분봉 틱봉 오버형 피라미딩 스윙 시스템에서
1. 진입수식 매수진입 -> 상승 피라미딩 1차 2차 3차 4차 5차 까지 진입하는 경우
피라미딩 누적 3차 매수진입 이후부터의 전량 청산은 직전 진입가에서 청산
(예, 피라미딩 누적 3차 진입 -> 2차 진입가 청산 / 4차 진입 -> 3차 진입가 청산/ 5차 진입 -> 4차 진입가 청산)
2. 진입수식 매도진입 -> 하락 피라미딩 1차 2차 3차 4차 5차 까지 진입하는 경우
피라미딩 누적 3차 매도진입 이후부터의 전량 청산은 직전 진입가에서 청산
(예, 피라미딩 누적 3차 진입 -> 2차 진입가 청산 / 4차 진입 -> 3차 진입가 청산/ 5차 진입 -> 4차 진입가 청산)
피라미딩 진입 청산 수식요청 드립이다.
감사합니다.
//-------------------------------------------------------------------------------------------------------
#피라미딩진입수식
Input : i증감(0.5),진입수량(1),누적진입횟수(5);
if MarketPosition == 1 and Bxcond == false and MaxEntries < 누적진입횟수 Then
Buy("PBB",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and SxCond == false and MaxEntries < 누적진입횟수 Then
sell("PSS",AtStop,LatestEntryPrice(0)-i증감,진입수량);
//-------------------------------------------------------------------------------------------------------
#진입수식(예제)
Input : Period(12), sigPeriod(9);
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
If CrossUP(value1, value2) Then{
Buy("BY");
}
If CrossDown(value1, value2) Then{
Sell("SL");
}
//-------------------------------------------------------------------------------------------------------
2018-03-30
346
글번호 117818
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 코딩 변환 부탁드립니다.
쓰기금지어 업데이트는 다 한글로 바꿨습니다.
이거 그런데 일목균형표처럼 차트 오른쪽 란 좀 넓혀서 보게 만들 수 있나요?
Function: TimeForecast
inputs:
PresentDate( NumericSimple ) ,
PresentTime( NumericSimple ) ,
DaysAhead( NumericSimple ) ,
HoursAhead( NumericSimple ) ,
MinutesAhead( NumericSimple ) ,
oFutureDate( NumericRef ) ,
oFutureTime( NumericRef ) ;
variables:
DateTime( 0 ) ,
FutureDateTime( 0 ) ;
DateTime = DateToJulian( PresentDate ) +
( TimeToMinutes( PresentTime ) / 60 / 24 ) ;
FutureDateTime = DateTime + DaysAhead + ( HoursAhead /
24 ) + ( MinutesAhead / 60 / 24 ) ;
if DayOfWeekFromDateTime( FutureDateTime ) = Saturday
then
FutureDateTime = FutureDateTime - 1
else if DayOfWeekFromDateTime( FutureDateTime ) = Sunday
then
FutureDateTime = FutureDateTime + 1 ;
oFutureDate = JulianToDate( IntPortion(
FutureDateTime ) ) ;
oFutureTime = MinutesToTime( FracPortion(
FutureDateTime ) * 60 * 24 ) ;
TimeForecast = FutureDateTime ;
Function: FibTimeForecasts
inputs:
PivotValues[ MaxSize1, MaxSize2 ]( NumericArray ),
{ ZigZagPivots[Row1-6, 1] = price }
{ ZigZagPivots[Row1-6, 2] = date }
FibDateTime[MaxSize3]( NumericArrayRef ) ;
variables:
Counter( 0 ),
FirstCall( true ) ;
arrays:
FibNumbers[5]( 0 ),
FibSwingRange[5]( 0 ) ;
if FirstCall then
begin
FibNumbers[1] = 0.382 ;
FibNumbers[2] = 0.5 ;
FibNumbers[3] = 0.618 ;
FibNumbers[4] = 0.707 ;
FibNumbers[5] = 1 ;
FirstCall = false ;
end ;
for Counter = 1 to 5
begin
FibSwingRange[Counter] = PivotValues[ Counter + 1,
2 ] - PivotValues[ Counter, 2] ; { $f$9 through
$f$13 }
end ;
for Counter = 1 to 5
begin
FibDateTime[Counter] = FibNumbers[Counter] *
FibSwingRange[5] + PivotValues[6, 2] ;
end ;
for Counter = 6 to 10
begin
FibDateTime[Counter] = FibNumbers[ Counter - 5 ] *
FibSwingRange[4] + PivotValues[6, 2] ;
end ;
for Counter = 11 to 15
begin
FibDateTime[Counter] = FibNumbers[ Counter - 10 ] *
FibSwingRange[2] + PivotValues[6, 2] ;
end ;
for Counter = 16 to 20
begin
FibDateTime[Counter] = ( PivotValues[5, 2] -
PivotValues[3, 2] ) * FibNumbers[ Counter - 15 ] +
PivotValues[5, 2] ;
end ;
for Counter = 21 to 25
begin
FibDateTime[Counter] = ( PivotValues[5, 2] -
PivotValues[1, 2] ) * FibNumbers[ Counter - 20 ] +
PivotValues[5, 2] ;
end ;
FibTimeForecasts = 1 ;
Indicator: SqOf9_FibTimeComment
{
Square of Nine portions taken from:
http://www.tradestationworld.com/discussions/Topic.aspx?
TOPIC_ID=8289
Fibonacci time forecasts come directly from the TASC 1992 Robert
Minor article, “A Spreadsheet for Time Ratio Analysis”.
The commentary features were written by Mitch Shack of
TradeStation Securities, Inc.
Any misinterpretations of Fibonacci and Gann are my own.
Mark Mills, TradeStation Securities, Inc.
}
inputs:
YestDate( ELDate( 8, 10, 2004 ) ),
TextPlaceTime( 1200 ),
TextColor( White ),
LineColor( Yellow ),
LineStyle_1to5(1),
ForecastWidth_0to6( 4 ),
PriceForecastRange( 3 ),
BaseNumber( 10 ),
Price( Close ),
RetracePct( 5 ),
ZigZagLineWidth( 1 ),
TextMinMoveOffset( -5 ) ;
variables:
xloop( 0 ),
Counter( 0 ),
ColumnEnd( 0 ),
HighRange( 0 ),
LowRange( 0 ),
Degree( “” ),
ID( -1 ),
DaysAhead( 0 ),
HoursAhead( 0 ),
MinutesAhead( 0 ),
oFutureDate( 0 ),
oFutureTime( 0 ),
ValueSpace( 8 ),
ValueSpace2( 11 ), { Print spacing }
ValueSpace3( 4 ),
ValueSpace4( 13 ),
ValueSpace5( 14 ),
YesClose( 0 ),
ZeroDegrees( 1 ),
FortyFiveDegrees( 2 ),
NinetyDegrees( 3 ),
OneThirtyFiveDegrees( 4 ),
OneEightyDegrees( 5 ),
TwoTwentyFiveDegrees( 6 ),
TwoSeventyDegrees( 7 ),
ThreeFifteenDegrees( 8 ),
{ Array Index Positions }
DegreeSections( 8 ),
FullArrayCount( 49 ),
MyBaseNumber( 0 ),
NewSwingPrice( 0 ),
SwingPrice( Price ), { used as a convenient
2-element array }
SwingDate( Date ), { used as a convenient
2-element array }
SwingTime( Time ), { used as a convenient
2-element array }
TLDir( 0 ), { TLDir = -1 implies prev TL dn, +1
implies prev TL up }
RetraceFctrUp( 1 + RetracePct * 0.01 ),
RetraceFctrDn( 1 - RetracePct * 0.01 ),
SaveSwing( false ),
AddTL( false ),
업데이트TL( false ),
TLRef( 0 ) ;
arrays:
ZigZagPivots[6, 2]( 0 ), { ZigZagPivots[Row1-6, 1] =
price, ZigZagPivots[Row1-6, 2] = date }
FibTimeTargets[25]( 0 ),
DegreeOfAngle[8, 49]( 0 ),
DegreeOfAngleWord[8]( “” ) ;
if CurrentBar = 1 then
begin
MyBaseNumber = BaseNumber * 7 ;
DegreeOfAngle[ ZeroDegrees, 0 ] = BaseNumber * 2 ;
DegreeOfAngle[ FortyFiveDegrees, 0 ] =
BaseNumber * 3 ;
DegreeOfAngle[ NinetyDegrees, 0 ] = BaseNumber * 4 ;
DegreeOfAngle[ OneThirtyFiveDegrees, 0 ] =
BaseNumber * 5 ;
DegreeOfAngle[ OneEightyDegrees, 0 ] =
BaseNumber * 6 ;
DegreeOfAngle[ TwoTwentyFiveDegrees, 0 ] =
BaseNumber * 7 ;
DegreeOfAngle[ TwoSeventyDegrees, 0 ] =
BaseNumber * 8 ;
DegreeOfAngle[ ThreeFifteenDegrees, 0 ] =
BaseNumber * 9 ;
Degree = “ deg” ; { the degree symbol number }
DegreeOfAngleWord[ ZeroDegrees ] = “ - 0” + Degree ;
DegreeOfAngleWord[ FortyFiveDegrees ] = “ - 45” +
Degree ;
DegreeOfAngleWord[ NinetyDegrees ] = “ - 90” +
Degree ;
DegreeOfAngleWord[ OneThirtyFiveDegrees ] = “ - 135”
+ Degree ;
DegreeOfAngleWord[ OneEightyDegrees ] = “ - 180” +
Degree ;
DegreeOfAngleWord[ TwoTwentyFiveDegrees ] = “ - 225”
+ Degree ;
DegreeOfAngleWord[ TwoSeventyDegrees ] = “ - 270” +
Degree ;
DegreeOfAngleWord[ ThreeFifteenDegrees ] = “ - 315”
+ Degree ;
for xLoop = 1 to FullArrayCount
begin
DegreeOfAngle[ ZeroDegrees, xLoop ] =
DegreeOfAngle[ ZeroDegrees, xloop - 1 ]
+ DegreeOfAngle[ ZeroDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
DegreeOfAngle[ FortyFiveDegrees, xLoop ] =
DegreeOfAngle[ FortyFiveDegrees, xloop - 1 ]
+ DegreeOfAngle[ FortyFiveDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
DegreeOfAngle[ NinetyDegrees, xLoop ] =
DegreeOfAngle[ NinetyDegrees, xloop - 1 ]
+ DegreeOfAngle[ NinetyDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
DegreeOfAngle[ OneThirtyFiveDegrees, xLoop ] =
DegreeOfAngle[ OneThirtyFiveDegrees,
xloop - 1 ]
+ DegreeOfAngle[ OneThirtyFiveDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
DegreeOfAngle[ OneEightyDegrees, xLoop ] =
DegreeOfAngle[ OneEightyDegrees, xloop - 1 ]
+ DegreeOfAngle[ OneEightyDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
DegreeOfAngle[ TwoTwentyFiveDegrees, xLoop ] =
DegreeOfAngle[ TwoTwentyFiveDegrees,
xloop - 1 ]
+ DegreeOfAngle[ TwoTwentyFiveDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
DegreeOfAngle[ TwoSeventyDegrees, xLoop ] =
DegreeOfAngle[ TwoSeventyDegrees, xloop - 1 ]
+ DegreeOfAngle[ TwoSeventyDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
DegreeOfAngle[ ThreeFifteenDegrees, xLoop ] =
DegreeOfAngle[ ThreeFifteenDegrees, xloop - 1 ]
+ DegreeOfAngle[ ThreeFifteenDegrees, 0 ]
+ MyBaseNumber + ( 8 * ( xLoop - 1 ) ) ;
end ;
end ; { CurrentBar = 1 }
if Date <> Date[1] then
YesClose = Close[1] ; { if new day get the SO9
compare number }
{ ZigZag Calculations }
{ Candidate swings are just-confirmed, 3-bar (Str = 1),
SwingHi’s and SwingLo’s }
NewSwingPrice = SwingHigh( 1, Price, 1, 2 ) ;
if NewSwingPrice <> -1 then
begin
if TLDir <= 0 and NewSwingPrice >= SwingPrice *
RetraceFctrUp then { prepare to add new up TL }
begin
SaveSwing = true ;
AddTL = true ;
TLDir = 1 ;
end
else if TLDir = 1 and NewSwingPrice >= SwingPrice
then { prepare to 업데이트 prev up TL }
begin
SaveSwing = true ;
업데이트TL = true ;
end ;
end
else
begin
NewSwingPrice = SwingLow( 1, Price, 1, 2 ) ;
if NewSwingPrice <> -1 then
begin
if TLDir >= 0 and NewSwingPrice <= SwingPrice *
RetraceFctrDn then
{ prepare to add new dn TL }
begin
SaveSwing = true ;
AddTL = true ;
TLDir = -1 ;
end
else if TLDir = -1 and NewSwingPrice <= SwingPrice
then { prepare to 업데이트 prev dn TL }
begin
SaveSwing = true ;
업데이트TL = true ;
end ;
end ;
end ;
if SaveSwing then
{ save new swing and reset SaveSwing }
begin
SwingPrice = NewSwingPrice ;
SwingDate = Date[1] ;
SwingTime = Time[1] ;
SaveSwing = false ;
end ;
if AddTL then { add new TL and reset AddTL }
begin
Plot1( Close ) ; { marks the point at which a leg of
pivot is locked down }
{ push the pivot date and time into the array }
{ ZigZagPivots[Row1 - 6, 1] = price,
ZigZagPivots[Row1 - 6, 2] = date, row 1 is the
oldest }
for Value1 = 1 to 5
begin
ZigZagPivots[ Value1, 2 ] = ZigZagPivots[ Value1 +
1, 2 ] ;
end ;
ZigZagPivots[6,2] = DateToJulian( SwingDate ) +
TimeToMinutes( SwingTime ) / ( 24 * 60 ) ;
for Value1 = 1 to 5
begin
ZigZagPivots[ Value1, 1] = ZigZagPivots[ Value1 +
1, 1 ] ;
end ;
ZigZagPivots[6,1] = SwingPrice ;
Value1 = FibTimeForecasts( ZigZagPivots,
FibTimeTargets ) ;
{ back to the original ZigZag code }
TLRef = TL_New( SwingDate, SwingTime, SwingPrice,
SwingDate[1], SwingTime[1], SwingPrice[1] ) ;
TL_SetExtLeft( TLRef, false ) ;
TL_SetExtRight( TLRef, false ) ;
TL_SetSize( TLRef, ZigZagLineWidth ) ;
TL_SetColor( TLRef, LineColor ) ;
AddTL = false ;
end
else if 업데이트TL then
{ 업데이트 prev TL and reset 업데이트TL }
begin
TL_SetEnd( TLRef, SwingDate, SwingTime,
SwingPrice ) ;
업데이트TL = false ;
end ;
if AtCommentaryBar then
begin
xLoop = 0 ;
ColumnEnd = 0 ;
while xLoop < FullArrayCount and ColumnEnd = 0
begin
xLoop = xLoop + 1 ;
if DegreeOfAngle[ ZeroDegrees, xLoop ] > YesClose
then
ColumnEnd = xLoop ; { searching for SO9 numbers
that are between YesClose }
end ;
LowRange = IntPortion( YesClose -
PriceForecastRange ) ;
HighRange = IntPortion( YesClose +
PriceForecastRange ) ;
for Counter = ColumnEnd - 1 to ColumnEnd
begin
for xLoop = 1 to DegreeSections
begin
if IFFLogic( DegreeOfAngle[ xLoop, Counter ] >=
LowRange and DegreeOfAngle[ xLoop, Counter] <=
HighRange, true, false ) then
begin
for Value99 = 1 to 25
begin
MinutesAhead = ( IntPortion(
FibTimeTargets[Value99] - ( DateToJulian
( date ) + ( TimeToMinutes( Time ) / (
60 * 24 ) ) ) ) ) * ( 60 * 24 ) ;
Value1 = TimeForecast( Date, Time, 0, 0,
MinutesAhead, oFutureDate,
oFutureTime ) ;
Value1 = TL_New( oFutureDate,
oFutureTime, DegreeOfAngle[ xLoop,
Counter ], oFutureDate, oFutureTime,
DegreeOfAngle[ xLoop, Counter ] -
MinMove / PriceScale ) ;
TL_SetStyle(Value1,LineStyle_1to5);
TL_SetSize( Value1, ForecastWidth_0to6 ) ;
ID = Text_New( Date, TextPlaceTime,
DegreeOfAngle[ xLoop, Counter ] +
TextMinMoveOffset * MinMove /
PriceScale, NumToStr( DegreeOfAngle[
xLoop, Counter ], 0 ) +
DegreeOfAngleWord[xLoop] ) ;
Value1 = Text_SetColor( ID, TextColor ) ;
end ; { FibTimeTargets loop }
end ; { IFFLogic }
end ; { xLoop }
end ; { Counter }
end ; { Date = }
2018-03-30
841
글번호 117817