커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1458
글번호 230811
답변완료
피보나치 지그재그선
input : 전환포인트(1);
Array : HD[10](0),HT[10](0),HV[10](0);
Array : LD[10](0),LT[10](0),LV[10](0);
var : cnt(0),Hprice(0),Lprice(0);
var : UpTrend(false),DownTrend(False),Trend(0),trend1(0),ZigZagTL(0),TX(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),TL9(0);
Plot1 (c);
HPrice = H;
LPrice = L;
if Index == 0 or Bdate != Bdate[1] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
trend = 0;
trend1 = 0;
}
Else
{
UpTrend = HPrice >= LV[0]+전환포인트;
DownTrend = LPrice <= HV[0]-전환포인트;
if trend <= 0 and UpTrend == true Then
{
trend = 1;
trend1 = trend[1];
For cnt = 9 DownTo 1
{
HD[cnt] = HD[cnt-1];
HT[cnt] = HT[cnt-1];
HV[cnt] = HV[cnt-1];
}
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]);
TL_SetColor(ZigZagTL,Red);
TL_SetSize(ZigZagTL,1);
TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,1);
Text_SetColor(TX,Black);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100));
var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100));
var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100));
var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100));
TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL6 = TL_New(LD[0],LT[0],var6,NextBarSdate,NextBarStime,var6);
TL7 = TL_New(LD[0],LT[0],var7,NextBarSdate,NextBarStime,var7);
TL8 = TL_New(LD[0],LT[0],var8,NextBarSdate,NextBarStime,var8);
TL9 = TL_New(LD[0],LT[0],var9,NextBarSdate,NextBarStime,var9);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL2,Orange);
TL_SetColor(TL3,Green);
TL_SetColor(TL4,Orange);
TL_SetColor(TL5,Green);
TL_SetColor(TL6,Blue);
TL_SetColor(TL7,Blue);
TL_SetColor(TL8,Gold);
TL_SetColor(TL9,Magenta);
}
Else if trend >= 0 and DownTrend Then//하락추세 전환
{
trend = -1;
trend1 = trend[1];
For cnt = 9 DownTo 1
{
LD[cnt] = LD[cnt-1];
LT[cnt] = LT[cnt-1];
LV[cnt] = LV[cnt-1];
}
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]);
TL_SetColor(ZigZagTL,Blue);
TL_SetSize(ZigZagTL,1);
TX = text_new(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,0);
Text_SetColor(TX,Black);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100));
var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100));
var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100));
var9= 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100));
TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL6 = TL_New(HD[0],HT[0],var6,NextBarSdate,NextBarStime,var6);
TL7 = TL_New(HD[0],HT[0],var7,NextBarSdate,NextBarStime,var7);
TL8 = TL_New(HD[0],HT[0],var8,NextBarSdate,NextBarStime,var8);
TL9 = TL_New(HD[0],HT[0],var9,NextBarSdate,NextBarStime,var9);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL2,Orange);
TL_SetColor(TL3,Green);
TL_SetColor(TL4,Orange);
TL_SetColor(TL5,Green);
TL_SetColor(TL6,Blue);
TL_SetColor(TL7,Blue);
TL_SetColor(TL8,Gold);
TL_SetColor(TL9,Magenta);
}
Else
{
if trend == 1 Then
{
if trend1 == 0 Then
{
LV[0] = DayLow;
}
if HPrice > HV[0] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]);
Text_SetLocation(TX,HD[0],HT[0],HV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100));
var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100));
var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100));
var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100));
TL_SetBegin(TL1,LD[0],LT[0],HV[0]);
TL_SetBegin(TL2,LD[0],LT[0],Var2);
TL_SetBegin(TL3,LD[0],LT[0],Var3);
TL_SetBegin(TL4,LD[0],LT[0],Var4);
TL_SetBegin(TL5,LD[0],LT[0],LV[0]);
TL_SetBegin(TL6,LD[0],LT[0],Var6);
TL_SetBegin(TL7,LD[0],LT[0],Var7);
TL_SetBegin(TL8,LD[0],LT[0],Var8);
TL_SetBegin(TL9,LD[0],LT[0],Var9);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,LV[0]);
TL_SetEnd(TL6,Sdate,Stime,Var6);
TL_SetEnd(TL7,Sdate,Stime,Var7);
TL_SetEnd(TL8,Sdate,Stime,Var8);
TL_SetEnd(TL9,Sdate,Stime,Var9);
}
}
if trend == -1 Then
{
if trend1 == 0 Then
{
HV[0] = DayHigh;
}
if LPrice < LV[0] Then
{
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]);
Text_SetLocation(TX,LD[0],LT[0],LV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100));
var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100));
var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100));
var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100));
TL_SetBegin(TL1,HD[0],HT[0],HV[0]);
TL_SetBegin(TL2,HD[0],HT[0],Var2);
TL_SetBegin(TL3,HD[0],HT[0],Var3);
TL_SetBegin(TL4,HD[0],HT[0],Var4);
TL_SetBegin(TL5,HD[0],HT[0],LV[0]);
TL_SetBegin(TL6,HD[0],HT[0],Var6);
TL_SetBegin(TL7,HD[0],HT[0],Var7);
TL_SetBegin(TL8,HD[0],HT[0],Var8);
TL_SetBegin(TL9,HD[0],HT[0],Var9);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,LV[0]);
TL_SetEnd(TL6,Sdate,Stime,Var6);
TL_SetEnd(TL7,Sdate,Stime,Var7);
TL_SetEnd(TL8,Sdate,Stime,Var8);
TL_SetEnd(TL9,Sdate,Stime,Var9);
}
}
}
}
시초에 지그재그선의 시발점이 안맞아, 지그재그선으로부터 1p가 되어야 표시가 됩니다.
피보나치선도 덩달아 나중에 표시되지만 정상입니다. 감사합니다
2024-03-05
1137
글번호 177166
답변완료
변환 부탁드려요
키움수식을 예스차트수식으로 변환 요 . 늘 감사드려요
1)CrossUp(CCI(20),0)
&&CrossUp(Diplus(14),
DiMinus(14))
&&v>v(1)*2
2)
A1=crossup(stochasticsSlow(period1,period2),
eavg(stochasticsslow(period1,period2),period3));
A2=crossup(macd(shortperiod,longperiod),
eavg(macd(shortperiod,longperiod),sigperiod));
A1 and A2
3)A=macd(12,26);
B=eavg(A,9);
K=eavg(B,120);
crossup(B,K) && C>O
2024-03-05
1171
글번호 177162
답변완료
다시 한번 더 부탁드립니다.
안녕하세요
수식을 작성해 주셔서 감사합니다
그런데 원하는 검색이 잘안되네요
종목검색을 하면 조건이 맞으면 당일에 Onclose가 표시가 되는 것도 있고 며칠전에 (2월13일에 매수신호가 나오고 이후매도신호가 안나오면(2번사진처럼) Onclose가 표시가 안되는 것이 섞여서 검색이 됩니다.
그래서 저는 검색했을 때 당 일에 Onclose만 나온 종목만 검색이 되었으면 합니다.(1번사진처럼)그리고 2번사진은 검색이 안되었으면 합니다
따로 검색식이 있으면 좋겠습니다..(다른 전략에도 적용할 수 있게)
부탁드립니다.
파일을 첨부하오니 다시 한번 검토해주시기 바랍니다.
아래는 작성해 주신 수식입니다
Input : B_A_Period1(9), B_A_Period2(26), B_A_Period3(52);
Input : B_B_Period1(12), B_B_Period2(26), B_B_Period3(9);
Input : B_C_Period1(10);
Input : B_D_Period1(9), B_D_Period2(26), B_D_Period3(52);
Input : B_E_Period1(9), B_E_Period2(26), B_E_Period3(52);
Input : S_A_Period1(12), S_A_Period2(26), S_A_Period3(9);
Var : B_A_Value1(0), B_A_Value2(0), B_A_Value3(0), B_A_Value4(0), B_A_Value5(0), B_A_Value6(0), B_A_Value7(0);
Var : B_A_CondResult(FALSE), B_A_TempResult(FALSE), B_A_Condition1(FALSE);
Var : B_B_value1(0), B_B_value2(0);
Var : B_B_CondResult(FALSE), B_B_TempResult(FALSE), B_B_Condition2(FALSE);
Var : B_C_value1(0);
Var : B_C_CondResult(FALSE), B_C_TempResult(FALSE), B_C_Condition1(FALSE);
Var : B_D_Value1(0), B_D_Value2(0), B_D_Value3(0), B_D_Value4(0), B_D_Value5(0), B_D_Value6(0), B_D_Value7(0);
Var : B_D_CondResult(FALSE), B_D_TempResult(FALSE), B_D_Condition3(FALSE);
Var : B_E_Value1(0), B_E_Value2(0), B_E_Value3(0), B_E_Value4(0), B_E_Value5(0), B_E_Value6(0), B_E_Value7(0);
Var : B_E_CondResult(FALSE), B_E_TempResult(FALSE), B_E_Condition1(FALSE);
Var : S_A_value1(0), S_A_value2(0);
Var : S_A_CondResult(FALSE), S_A_TempResult(FALSE), S_A_Condition3(FALSE);
B_A_Value1 = (highest(H,B_A_Period1)+lowest(L,B_A_Period1))/2;
B_A_Value2 = (highest(H,B_A_Period2)+lowest(L,B_A_Period2))/2;
B_A_Value3 = C;
B_A_Value4 = (B_A_Value1+B_A_Value2)/2;
B_A_Value5 = (highest(H,B_A_Period3)+lowest(L,B_A_Period3))/2;
B_A_Value6 = B_A_Value4[25];
B_A_Value7 = B_A_Value5[25];
B_B_value1 = EMA(Close,B_B_Period1)-EMA(Close,B_B_Period2);
B_B_value2 = EMA(B_B_value1,B_B_Period3);
B_C_value1 = MA(Close,B_C_Period1);
B_D_Value1 = (highest(H,B_D_Period1)+lowest(L,B_D_Period1))/2;
B_D_Value2 = (highest(H,B_D_Period2)+lowest(L,B_D_Period2))/2;
B_D_Value3 = C;
B_D_Value4 = (B_D_Value1+B_D_Value2)/2;
B_D_Value5 = (highest(H,B_D_Period3)+lowest(L,B_D_Period3))/2;
B_D_Value6 = B_D_Value4[25];
B_D_Value7 = B_D_Value5[25];
B_E_Value1 = (highest(H,B_E_Period1)+lowest(L,B_E_Period1))/2;
B_E_Value2 = (highest(H,B_E_Period2)+lowest(L,B_E_Period2))/2;
B_E_Value3 = C;
B_E_Value4 = (B_E_Value1+B_E_Value2)/2;
B_E_Value5 = (highest(H,B_E_Period3)+lowest(L,B_E_Period3))/2;
B_E_Value6 = B_E_Value4[25];
B_E_Value7 = B_E_Value5[25];
B_A_Condition1 = B_A_Value1 > B_A_Value1[1];
B_A_TempResult = B_A_Condition1;
B_A_CondResult = B_A_TempResult;
B_B_Condition2 = B_B_value1 > B_B_value2;
B_B_TempResult = B_B_Condition2;
B_B_CondResult = B_B_TempResult;
B_C_Condition1 = B_C_value1 < C;
B_C_TempResult = B_C_Condition1;
B_C_CondResult = B_C_TempResult;
B_D_Condition3 = B_D_Value1[0] >= B_D_Value2[0];
B_D_TempResult = B_D_Condition3;
B_D_CondResult = B_D_TempResult;
B_E_Condition1 = B_E_Value2 > B_E_Value2[1];
B_E_TempResult = B_E_Condition1;
B_E_CondResult = B_E_TempResult;
Condition1 = B_A_CondResult and B_B_CondResult and B_C_CondResult and B_D_CondResult and B_E_CondResult;
if Condition1 == true and Condition1[1] == False Then
Find(1);
2024-03-05
974
글번호 177161
답변완료
시작시간 문의
늘 감사합니다.
아래수식을 특정시간을 시가로 지정하고 싶어요.
예를 들면 093000, 103000 처럼 변경가능 하도록
아래수식
Plot1(data2(CloseD(0)), "2콜종가");
Plot2(data2(OpenD(0)), "2콜시가");
Plot3(data2(HighD(0)), "2콜고가");
Plot4(data2(LowD(0)), "2콜저가");
Plot9(data3(CloseD(0)), "3콜종가");
Plot10(data3(OpenD(0)), "3콜시가");
Plot11(data3(HighD(0)), "3콜고가");
Plot12(data3(LowD(0)), "3콜저가");
Plot13(data4(LowD(1)), "4콜종가");
Plot14(data4(OpenD(0)), "4콜시가");
Plot15(data4(HighD(0)), "4콜고가");
Plot16(data4(LowD(0)), "4콜저가");
var1 = data1(HighD(0));
var2 = data1(LowD(0));
var3 = data1(OpenD(0));
var4 = data1(CloseD(0));
var5 = data2(HighD(0));
var6 = data2(LowD(0));
var7 = data2(OpenD(0));
var8 = data2(CloseD(0));
var9 = data3(HighD(0));
var10 = data3(LowD(0));
var11 = data3(OpenD(0));
var12 = data3(CloseD(0));
var13 = data4(HighD(0));
var14 = data4(LowD(0));
var15 = data4(OpenD(0));
var16 = data4(CloseD(0));
var17 = data5(CloseD(0));
var21 = -var8/1000;
var22 = -var12/2000;
var23 = var16/2000;
var24 = var17/2000;
var31 = (var21+var22+var23+var24)/4;
var32 = var1-var2;
var33 = var2-var1;
var34 = var4-var3;
plot45(var21, "1");
plot46(var22, "2");
plot47(var23, "3");
plot48(var24, "4");
plot49(var31, "5");
plot50(var32, "+6");
plot51(var33, "-7");
plot52(var34, "8");
2024-03-04
806
글번호 177160
회원 님에 의해서 삭제되었습니다.
2024-03-04
628
글번호 177159
답변완료
시스템식 요청드립니다.
내부변수로 입력하는 방법을 요청드립니다.
input : 시작날짜 (20240203);
var : HH(0),LL(0);
외부변수로 작성된 날짜 이후로 가장 최고점이 HH에 내부변수로 저장
고점이 올라가면 계속 갱신, 가장 최저점이 LL에 내부변수로 저장
저점이 내려가면 계속 갱신되는 시스템 식을 요청 드립니다.
2024-03-04
717
글번호 177158
답변완료
변환 부탁드립니다
CrossUp(CCI(20),0)
&&CrossUp(Diplus(14),
DiMinus(14))
&&v>v(1)*2
검색식부탁드립니다 감사합니다
2024-03-04
884
글번호 177152
답변완료
부탁드립니다
안녕하세요...
예스트레레이딩 이제 입문해서 모르는게 너무 많네요.
게시판에 올라온 하기 예스랭귀지 수식에서 지지선과 저항선을 추가하고 싶습니다.
직전 상향발생한 신호의 고가(봉수 변수로 입력)에 저항선을...
직전 하향발생한 신호의 저가(봉수 변수로 입력)에 지지선을 그려 주시면 감사하겠습니다.
감사합니다.
===========================
input:단위호가(0.4);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),단기이평(0),중기이평(0),단기가중이평(0),중기가중이평(0),
상승(1),하락(-1),Sum(0),CSum(0);
array:고[10](0),저[10](0),렌코[500](0);
if index == 0 then
{
방향 = 0;
벽돌크기 = 단위호가;
고[0] = C;
저[0] = C;
렌코[0] = C;
}
#==========================================#
# 렌코 계산
#==========================================#
if 방향 == 0 then
{
if 저[0] - 벽돌크기 >= C then
{
벽돌개수 = int((저[0]-C)/벽돌크기);
저[0] = 저[0] - 벽돌크기 * 벽돌개수;
방향 = 하락;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] - 벽돌크기;
}
}
else if 고[0] + 벽돌크기 <= C then
{
벽돌개수 = int((C-고[0])/벽돌크기);
고[0] = 고[0] + 벽돌크기 * 벽돌개수;
방향 = 상승;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] + 벽돌크기;
}
}
}
else if 방향 == 하락 then
{
if 저[0] - 벽돌크기 >= C then
{
벽돌개수 = int((저[0]-C)/벽돌크기);
저[0] = 저[0] - 벽돌크기 * 벽돌개수;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] - 벽돌크기;
}
}
if 저[0] + 2*벽돌크기 <= C then
{
for j = 8 downto 0
{
고[j+1] = 고[j];
}
방향 = 상승;
벽돌개수 = int((C-저[0])/벽돌크기);
고[0] = 저[0] + 벽돌크기 * 벽돌개수;
for j = 499 downto (벽돌개수-1)
{
렌코[j] = 렌코[j-(벽돌개수-1)];
}
렌코[벽돌개수-2] = 렌코[벽돌개수-1] + 2*벽돌크기;
if 벽돌개수 > 2 then
{
for j = 벽돌개수 - 3 downto 0
{
렌코[j] = 렌코[j+1] + 벽돌크기;
}
}
}
}
else if 방향 == 상승 then
{
if 고[0] + 벽돌크기 <= C then
{
벽돌개수 = int((C-고[0])/벽돌크기);
고[0] = 고[0] + 벽돌크기 * 벽돌개수;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] + 벽돌크기;
}
}
if 고[0] - 2*벽돌크기 >= C then
{
for j = 8 downto 0
{
저[j+1] = 저[j];
}
방향 = 하락;
벽돌개수 = int((고[0]-C)/벽돌크기);
저[0] = 고[0] - 벽돌크기 * 벽돌개수;
for j = 499 downto (벽돌개수-1)
{
렌코[j] = 렌코[j-(벽돌개수-1)];
}
렌코[벽돌개수-2] = 렌코[벽돌개수-1] - 2*벽돌크기;
if 벽돌개수 > 2 then
{
for j = 벽돌개수 - 3 downto 0
{
렌코[j] = 렌코[j+1] - 벽돌크기;
}
}
}
}
if 방향[1]==하락 and 방향==상승 then
plot1(저[0],"렌코차트",Blue);
if 방향[1]==상승 and 방향==하락 then
plot1(고[0],"렌코차트",RED);
2024-03-04
892
글번호 177149
답변완료
문의 드립니다.
아래 식을 국내 또는 해외선물에 적용하려고 합니다.
그런데 금액이 아니라 수량을 추가할 수 있도록 변경해 주시면 감사하겠습니다.
매수용과 매도용으로 따로 부탁드리겠습니다.
input : mm(10000000);
if CrossUp(C,DayOpen) Then
Buy("b",OnClose,Def,mm/C);
if CrossDown(c,DayOpen) Then
ExitLong();
2024-03-04
964
글번호 177146