커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 문의

수식 부탁 드립니다. A1 = BBandsUP(20,2); A2 = BBandsC(20,2); A3 = BBandsDown(20,2); m1 = avg(c, 10); m2 = avg(c, 20); ValueWhen(1,(((L(1)<=A2(1)) or (C(1) <=A2(1)) or (L(2)<=A2(2)) or (C(2) <=A2(2))) && C>A2 && ((C>m1) or (C>m1 && C>m2) && C>O)), L) ~ 언제나 감사드려요..... ^*^
프로필 이미지
위피데이
2023-09-14
1164
글번호 172478
지표
답변완료

진입조건에 거래 후 청산하고 다시 진입조건에 거래하기 문의

항상 도움에 감사드립니다. 이해를 돕기 위해 이미지를 첨부 했습니다. 아래의 수식은 여러 기준선들 중에서 상단이나 하단을 5번 먼저 터치 하면 진입이 시작되고 목표가격에서 청산 후 거래가 종료되는 수식인데요 -------------------------------------- input : ntime(173800), xtime(230000); input : tick_size(8); input : line_num(20); //줄을 몇개 그을 것인지 input : num(8); // 몇번 터치하면 진입하는지. var : Tcond(False), oo(0), k(0), PriceScale_tick_size(0); var : 상단(0),하단(0),n1(0),daypl(0),vol(0),xcond(False); array : up_flag[100](0), dn_flag[100](0); array : b_cnt[100](0), b_text_display[100](0); array : b_b_cnt[100](0), b_b_text_display[100](0); array : b_line[100](0), b_TL_display[100](0); array : b_b_line[100](0), b_b_TL_display[100](0); array : u_cnt[100](0), u_text_display[100](0); array : u_u_cnt[100](0), u_u_text_display[100](0); array : u_line[100](0), u_TL_display[100](0); array : u_u_line[100](0), u_u_TL_display[100](0); if (sdate != sdate[1] and stime >= xtime) or (sdate == sdate[1] and stime >= xtime and stime[1] < xtime) Then Tcond = False; if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { // 변수들 초기화 해주기 Tcond = true; oo = o; For k = 1 to line_num { up_flag[k] = 0; dn_flag[k] = 0; u_cnt[k] = 0; u_u_cnt[k] = 0; b_cnt[k] = 0; b_b_cnt[k] = 0; PriceScale_tick_size = PriceScale*tick_size; u_line[k] = oo + (k-1)*PriceScale_tick_size; u_u_line[k] = oo + k*PriceScale_tick_size; b_line[k] = oo - (k-1)*PriceScale_tick_size; b_b_line[k] = oo - k*PriceScale_tick_size; } // 조건문으로 터치 카운트 하기 For k = 1 to line_num { if H >= u_u_line[k] Then { up_flag[k] = 1; u_u_cnt[k] = u_u_cnt[k] + 1; } if L <= b_b_line[k] Then { dn_flag[k] = -1; b_b_cnt[k] = b_b_cnt[k] + 1; } } } Else { if Tcond == true Then { For k = 1 to line_num { if dn_flag[k] <= 0 and H >= b_line[k] and H[1] < b_line[k] Then { dn_flag[k] = 1; b_cnt[k] = b_cnt[k] + 1; } if dn_flag[k] >= 0 and L <= b_b_line[k] and L[k] > b_b_line[k] Then { dn_flag[k] = -1; b_b_cnt[k] = b_b_cnt[k] + 1; } if up_flag[k] <= 0 and H >= u_u_line[k] and H[1] < u_u_line[k] Then { up_flag[k] = 1; u_u_cnt[k] = u_u_cnt[k] + 1; } if up_flag[k] >= 0 and L <= u_line[k] and L[1] > u_line[k] Then { up_flag[k] = -1; u_cnt[k] = u_cnt[k] + 1; } } } } var : T(0); if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { T = 0; n1 = NetProfit; xcond = False; } if TotalTrades > TotalTrades[1] and (IsExitName("bp3",1) or IsExitName("sp3",1)) Then xcond = true; if Tcond == true and xcond == False Then { if T == 0 Then { For k = 1 to line_num { if u_u_cnt[k] >= num or u_cnt[k] >= num Then { T = k; 상단 = u_u_line[k]; 하단 = u_line[k]; } if b_b_cnt[k] >= num or b_cnt[k] >= num Then { T = k; 상단 = b_line[k]; 하단 = b_b_line[k]; } } } if T != 0 Then { dayPL = (NetProfit-n1)+PositionProfit(0); // n1은 초기의 NetProfit이다. if daypl >= 0 Then vol = 2; Else vol = max(Ceiling(abs(daypl)/((상단-하단)*3)),2); ClearDebug; MessageLog("dayPL : %.2f | NetProfit : %.2f | PositionProfit : %.2f | vol : %.f", daypl, NetProfit, PositionProfit, vol); MessageLog("상단 : %.2f | 하단 : %.2f | 위청산 : %.2f | 아래청산 : %.2f", 상단, 하단, 상단+(상단-하단)*6, 하단-(상단-하단)*6); MessageLog("상단 - 하단 : %.2f, T : %.f", 상단-하단, T); if MarketPosition <= 0 and CrossUp(C,상단) Then Buy("b1",AtMarket,Def,vol); if MarketPosition >= 0 and CrossDown(C,하단) Then Sell("s1",AtMarket,Def,vol); if MarketPosition == 1 Then { ExitLong("Bp1",AtLimit,상단+(상단-하단)*3,"",Floor(CurrentContracts*0.5),1); // 3배수 위치에서 물량 일부 청산하기, 1은 전체에서 한번 청산, 0은 각 진입 횟수 만큼 청산 ExitLong("Bp2",AtLimit,상단+(상단-하단)*7,"",Floor(CurrentContracts*0.5),1); ExitLong("Bp3",AtLimit,상단+(상단-하단)*10); } if MarketPosition == -1 Then { ExitShort("sp1",AtLimit,하단-(상단-하단)*3,"",Floor(CurrentContracts*0.5),1); ExitShort("sp2",AtLimit,하단-(상단-하단)*7,"",Floor(CurrentContracts*0.5),1); ExitShort("sp3",AtLimit,하단-(상단-하단)*10); } MessageLog("daypl %.2f", daypl); } } -------------------------------------------------------------- 위의 수식을 아래와 같이 수정, 보완하고 싶습니다 1. 목표가에서 청산후 거래 종료 시점부터 2. 다시 터치 횟수를 처음부터 시작해 5번 터치하면 3. 처음 진입 조건과 같이 진입하고 목표가에서 청산하고 4. 또 목표가에서 청산하고 나면 5. 청산 시점부터 다시 터치 횟수를 시작해 6. 5번 터치 한곳에서 진입을 시작하는 수식입니다 도움 부탁드립니다
프로필 이미지
예스쟁이
2023-09-14
1674
글번호 172477
시스템
답변완료

문의드립니다.

수고많습니다. 수식공부차 문의드립니다. if MarketPosition <= 0 and L < Var5-PriceScale*50 Then Buy("매수1",AtLimit,Var5-PriceScale*50); L < Var5-PriceScale*50 대신에 C > Var5-PriceScale*50 변경하면 어떤 차이가 있는지 설명 부탁드리겠습니다. (이렇게 변경하면 수익률이 더 좋게 나와서 문의드립니다) (왜 L < 을 쓰는지 이해가 안되서 그렇습니다. 저가보다 기준값이 낮을때 매수라는건데 봉의 저가인 L 보다 Var5-PriceScale*50 이 낮을 수 있는건지 모르겠습니다) 또 이때 AtLimit 대신에 비슷하다고 생각한 AtStop 으로 바꾸면 결과값이 많이 달라지는데 당연한 것인지도 궁금합니다. 참고로 기준선에서 많이 빠지면 매수하고, 많이 오르면 매도하는 시스템입니다.
프로필 이미지
카르마다
2023-09-14
884
글번호 172475
시스템

hakona 님에 의해서 삭제되었습니다.

프로필 이미지
hakona
2023-09-14
21
글번호 172474
시스템

hakona 님에 의해서 삭제되었습니다.

프로필 이미지
hakona
2023-09-14
26
글번호 172473
지표

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2023-09-14
15
글번호 172469
지표
답변완료

문의 드립니다

Input : shortPeriod(3), longPeriod(10); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); } # 매도/매수청산 If CrossDown(value1, value2) Then { ExitLong(); } 30 이평선 아래 매수금지 수식어의 추가를 부탁합니다.
프로필 이미지
푸른
2023-09-14
854
글번호 172463
시스템
답변완료

수식 질문합니다.

안녕하세요. If H[n]==Max(H[n-10],H[n-8],H[n-7],H[n-6],H[n-5],H[n-4],H[n-3],H[n-2],H[9],H[n-1],H[n]) Then Var1=H[n]; Else { if C[1]<Var1 and CrossUp(C,var1) Then Find(1); } 임의 구간에서 열한 개 봉의 최고가가 시작하는 봉의 고가일 때 현재봉의 종가가 최고가를 돌파하는 종목을 검색하고 싶은데요. 위와 같이 해보았는데 n을 정의하라고 하는데 어떻게 해야 할지 문의드립니다. 감사합니다.
프로필 이미지
트더
2023-09-14
857
글번호 172462
종목검색
답변완료

수식문의 드립니다

2가지 수식문의 드립니다 1. 21전 캔들 종가를 현재 캔들이 돌파하면 매수신호, 붕괴하면 매도신호 2. 현재 캔들기준 21전 캔들에 신호 수식이나 또는 강조신호, 지표 등 표시할 수 있는 것 부탁드립니다.
프로필 이미지
한림
2023-09-14
1600
글번호 172461
시스템
답변완료

수식변환 부탁드립니다

안녕하세요 수식 변환 부탁 드립니다 ee=(highest(high,shortPeriod)+lowest(low,shortPeriod))/2; aa=(highest(high,midPeriod)+lowest(low,midPeriod))/2; bb=shift((highest(high,shortPeriod)+lowest(low,shortPeriod)+highest(high,midPeriod)+lowest(low,midPeriod))/4,midPeriod-26); cc=shift((highest(high,longPeriod)+lowest(low,longPeriod))/2,midPeriod-26); if(crossup(bb,cc),1,0) or bb==cc && aa(1) < aa && ee>aa
프로필 이미지
수민맘
2023-09-14
1020
글번호 172455
종목검색