커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 문의드립니다.

if NextBarSdate == sdate then { if MarketPosition == 0 and DayHigh < dayopen+(DayHigh(1)-DayLow(1))*0.4 Then buy("b",AtStop,dayopen+(DayHigh(1)-DayLow(1))*0.4); } if MarketPosition == 1 and NextBarSdate != sdate Then ExitLong("bx",AtMarket); 변동성돌파 식 사용 중입니다 매수 매도 시간이 1분봉, 5분봉, 10틱 봉으로 바꿀때마다 달라지는것 같습니다. 예를들어 시가 매도면 1분봉일때는 9시1분, 5분봉일때는 9시5분으로 설정됩니다.. 신호가 나왔을때 즉시 매수 매도가 일어나게 할 수 있을까요?? 그리고 셋째줄의 DayHigh < dayopen+(DayHigh(1)-DayLow(1))*0.4 은 어떤의미로 들어간건지 궁금합니다. dayhigh는 하루중 가장 높은 가격인데 조건 가격이 그보다 더 높아진다는게 이해가 잘 안갑니다.
프로필 이미지
이데아
2021-01-17
1042
글번호 145513
시스템
답변완료

ntime

ntime 229680은 시간으로 몇시인지요?
프로필 이미지
코퍼
2021-01-17
1220
글번호 145512
사용자 함수

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
샐리짱
2021-01-17
8
글번호 145511
지표
답변완료

시스템 자동매매 문의드립니다.

전략실행차트를 분활하고 종목을 선정해서 시스템을 자동매매로 실행되도록 설정하였습니다. 근데 하루가 지나서 새로 로그인을 하면 적용한 시스템이 `시스템 시험적용`으로 바뀝니다. 다시 일일이 자동매매로 정정해줘야하는 불편이 있습니다. 1. 위 방법대로 하는게 맞는건가요? 2. 설정이 안바뀌게 하는방법 3. 좀더 편하게 설정하는 방법 있으면 가르쳐주세요. 감사드립니다.^^
프로필 이미지
퉁이
2021-01-17
1238
글번호 145510
시스템
답변완료

수치표시 Text를 왼쪽에서 오른쪽으로 좀 변경 부탁드립니다.

Input:length(10),ClsPxUseBit(0),inRange(10),waveLineSize(1),displPRC(1),선색(MAGENTA),선두께(1); Var:j(0),jj(0),jjj(0),HH(0),LL(0),lastHi(0),lastLo(0),lastVertex(""),procBit(""), TL1(0),TL2(0); Array:PK[50,4](0),VL[50,4](0), // 1:Price, 2:BarNumber, 3:Date, 4:Time basePK[5](0),baseVL[5](0); // 0:N/A, 1:Price, 2:BarNumber, 3:Date, 4:Time //========================================== HH = IFF(ClsPxUseBit == 1,C,H); LL = IFF(ClsPxUseBit == 1,C,L); If CurrentBar == 1 Then Begin PK[1,1] = HH; VL[1,1] = LL; End ; Condition1 = Highest(HH,length) == HH and lastHi <> HH; Condition2 = Lowest (LL,length) == LL and lastLo <> LL; procBit = ""; If Condition1 and Condition2 Then Begin If lastVertex == "Valley" Then procBit = "Peak" ; Else procBit = "Valley"; End Else If Condition1 Then procBit = "Peak" ; Else If Condition2 Then procBit = "Valley"; //========================================== If procBit == "Peak" Then Begin lastHi = HH; If lastVertex == "Valley" Then Begin For j = 50 DownTo 2 Begin For jj = 1 To 4 Begin PK[j,jj] = PK[j-1,jj]; End ; End ; PK[1,1] = HH; PK[1,2] = INDEX; PK[1,3] = Date; PK[1,4] = Time; TL1 = TL_New(VL[1,3],VL[1,4],VL[1,1],PK[1,3],PK[1,4],PK[1,1]); TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,WHITE); basePK[1] = 0; For j = 1 To inRange Begin If basePK[1] < PK[j,1] Then Begin For jjj = 1 To 4 Begin basePK[jjj] = PK[j,jjj]; End ; End ; End ; End Else If PK[1,1] < HH Then Begin PK[1,1] = HH; PK[1,2] = INDEX; PK[1,3] = Date; PK[1,4] = Time; TL_SetEnd(TL1,PK[1,3],PK[1,4],PK[1,1]); End ; lastVertex = "Peak"; End ; //========================================== If procBit == "Valley" Then Begin lastLo = LL; If lastVertex == "Peak" then Begin For j = 50 DownTo 2 Begin For jj = 1 To 4 Begin VL[j,jj] = VL[j-1,jj]; End ; End ; VL[1,1] = LL; VL[1,2] = INDEX; VL[1,3] = Date; VL[1,4] = Time; TL1 = TL_New(PK[1,3],PK[1,4],PK[1,1],VL[1,3],VL[1,4],VL[1,1]); TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,WHITE); baseVL[1] = 0; For j = 1 To inRange Begin If baseVL[1] > VL[j,1] or baseVL[1] == 0 Then Begin For jjj = 1 To 4 Begin baseVL[jjj] = VL[j,jjj]; End ; End ; End ; End Else If VL[1,1] > LL then Begin VL[1,1] = LL; VL[1,2] = INDEX; VL[1,3] = Date; VL[1,4] = Time; TL_SetEnd(TL1,VL[1,3],VL[1,4],VL[1,1]); End ; lastVertex = "Valley"; End ; //========================================== Array: fr[7,4](0); // 1:Rate, 2:Price, 3:Trendline ID, 4:Text ID If CurrentBar == 1 Then Begin fr[1,1] = 0; fr[2,1] = 0.236; fr[3,1] = 0.382; fr[4,1] = 0.50; fr[5,1] = 0.618; fr[6,1] = 0.764; fr[7,1] = 1; End ; If basePK[1] > 0 and baseVL[1] > 0 Then Begin If baseVL[2][1] <> baseVL[2] or basePK[2][1] <> basePK[2] Then Begin If TL2 > 0 Then TL_Delete(TL2); TL2 = TL_New(baseVL[3],baseVL[4],baseVL[1],basePK[3],basePK[4],basePK[1]); TL_SetSize(TL2,4); TL_SetColor(TL2,RGB(253,227,2)); If baseVL[2] < basePK[2] Then Begin for j = 1 to 7 Begin If fr[j,3] > 0 Then TL_Delete(fr[j,3]); fr[j,2] = basePK[1] - ((basePK[1] - baseVL[1]) * fr[j,1]); fr[j,3] = TL_New(baseVL[3],baseVL[4],fr[j,2],Date,Time,fr[j,2]); TL_SetColor(fr[j,3],선색); TL_SetSize(fr[j,3],선두께); If displPRC == 1 Then Begin If fr[j,4] > 0 Then Text_Delete(fr[j,4]); fr[j,4] = Text_New(baseVL[3],baseVL[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],black); End ; End ; End Else If basePK[2] < baseVL[2] Then Begin for j = 1 to 7 Begin If fr[j,3] > 0 Then TL_Delete(fr[j,3]); fr[j,2] = baseVL[1] + ((basePK[1] - baseVL[1]) * fr[j,1]); fr[j,3] = TL_New(basePK[3],basePK[4],fr[j,2],Date,Time,fr[j,2]); TL_SetColor(fr[j,3],선색); TL_SetSize(fr[j,3],선두께); If displPRC == 1 Then Begin If fr[j,4] > 0 Then Text_Delete(fr[j,4]); fr[j,4] = Text_New(basePK[3],basePK[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],black); End ; End ; End ; End Else Begin for j = 1 to 7 Begin TL_SetEnd(fr[j,3],Date,Time,fr[j,2]); End ; End ; End ;
프로필 이미지
매버릭
2021-01-17
1322
글번호 145509
지표
답변완료

Data1과 Data2사용시

data1과 data2 모두 10분봉 사용 data1에서 날짜가 바뀌면 data1과 data2를 이용, 새로이 지표를 1회만 계산하고자 함 문제) data1은 15시 20분 데이터(전일자 마지막 데이터)가 없고, 익일 시가 데이터가 있음 data2는 15시 20분 데이터(전일자 마지막 데이터)가 있고, 익일 시가 데이터가 있음 이 경우 data1은 data2에 비교해서 당일자 마지막 봉이 없어서 (비어있어서), 위의 경우에 날짜가 바뀌는 것을 1회가 아니라 2회로 인식해서, 지표 계산을 2회에 걸쳐 함. 이 경우 1회만 지표를 계산하게 하려고 합니다. 어찌해야 할까요.
프로필 이미지
데미안
2021-01-17
1236
글번호 145508
시스템
답변완료

수식 수정 부탁드립니다.

색깔이 제대로 안나와요. var : S(0); Var1 = Data2(ma(v,50)); //거래량50 이평선 Var2 = Var1[0] - Var1[1]; // 오늘의 기울기 Var3 = Var1[1] - Var1[2]; // 어제의 기울기 If Var3 < 0 and Var2 > 0 Then S = 1; // 이평선 상승 If Var3 > 0 and Var2 < 0 Then S = -1; // 이평선 하락 Plot1(Var1,"거래양이평선",Iff(S==1, RED,BLACK));
프로필 이미지
매버릭
2021-01-17
1232
글번호 145507
지표
답변완료

국내주식입니다. 분할매수 분할매도 하는 수식 부탁드림니다~~~

1. 국내주식 ( 예 삼성전자) 2. 차트 10분봉 기준 매수 조건 가. 200봉 평균값이 우상향시 ---------- 1. 엔벨로프(20 ) 조건에서 중심선 보다 낮을때마다 봉종가 (10분봉) 현재가 10만원 매수 (분할 무한 매수 ) 2. 엔벨로프(20, 0.5)조건에서 지지선 보다 낮을때마다 봉 종가(10분봉) 현재가 15만원 매수 (분할 무한 매수 ) 3. 엔벨로프(20,1 )조건에서 지지선 보다 낮을때마다 봉 종가(10분봉) 현재가 20만원 매수 (분할 무한 매수 ) 4. 엔벨로프(20,2 )조건에서 지지선 보다 낮을때마다 봉 종가(10분봉) 현재가 25만원 매수 (분할 무한 매수 ) 5. 볼린저밴드(20,2)조건에서 하한선 보다 낮을때마다 봉 종가(10분봉) 현재가 25만원 매수 (분할 무한 매수 ) 6. 가) 조건에 부합하지 않아도 MFI(20) < 25 일때 봉 종가(10분봉) 현재가 30만원 매수 (분할 무한 매수) 6. 가) 조건에 부합하지 않아도 MFI(30) < 25 일때 봉 종가(10분봉) 현재가 40만원 매수 (분할 무한 매수) 7. 진입금액 총액은 1000만원까지로 제한 매수 청산 조건 가. 50봉평균값이 우상향 영역에서 매수청산하는 수식 반영 1.엔벨로프(20,0.5) 조건에서 저항선 보다 높을때마다 봉 종가(10분봉)현재가 10만원씩 매도 (분할 매도) 2.엔벨로프(20,1) 조건에서 저항선 보다 높을때마다 봉 종가(10분봉)현재가 15만원씩 매도 (분할 매도) 3.엔벨로프(20,1.5) 조건에서 저항선 보다 높을때마다 봉 종가(10분봉)현재가 20만원씩 매도 나.50봉 우하향 영역에서 매수청산하는 수식 반영 매수물량이 남아있는 경우 1. 엔벨로프(20) 기준선 보다 높을때 봉종가에 전량(잔량분) 매수청산 (일괄매도)
프로필 이미지
이형지
2021-01-17
1305
글번호 145506
시스템
답변완료

시스템 주문식 부탁 드립니다.

안녕하세요 관리자님 미리 답변에 감사 드립니다. 아래와 같은 내용에서 이평선 1번은 Red일때 이평선 2번이 Red, Blue, Red순서로 색상이 바뀌면 Buy하는 식을 부탁 드립니다. 이평선1양=False; 이평선1음=False; If DZwave2 > DZwave2[1] Then 이평선1양 = True ; If Dzwave2 < DZwave2[1] Then 이평선1음 = True ; 이평선2양=False; 이평선2음=False; If DZwave3 > DZwave3[1] Then 이평선2양 = True ; If DZwave3 < DZwave3[1] Then 이평선3음 = Ture ; If 이평선1양 Then 이평선1컬러 = RED ; Else 이평선1컬러 = BLUE ; If 이평선2양 Then 이평선2컬러 = RED ; Else 이평선2컬러 = BLUE ;
프로필 이미지
blueo
2021-01-17
1079
글번호 145505
시스템
답변완료

시스템식 부탁드립니다.

안녕하세요. 1. 해외선물 10분봉 피라미딩 매매를 하고 싶습니다. 아래와 같이 코딩 되어 있을 경우 if MarketPosition == 0 Then Buy("b",AtLimit,DayOpen-PriceScale*10,1); if MarketPosition == 1 Then { if MaxEntries < 10 Then Buy("bb",AtLimit,DayOpen-(PriceScale*10)*(MaxEntries+1),1); } if MarketPosition == 0 Then sell("s",AtLimit,DayOpen+PriceScale*10,1); if MarketPosition == -1 Then { if MaxEntries < 10 Then sell("ss",AtLimit,DayOpen+(PriceScale*10)*(MaxEntries+1),1); } SetStopProfittarget(PriceScale*10,PointStop); 시스템 설정은 파리미딩의 경우 모든진입신호 허용으로 설정하면 되는 것으로 알고 있습니다. 만약에 당일 매수 포지션이 모두 청산되지 않는 경우 익일 아침에 다시 시스템 운영시 첫진입신호가 매도가 나오면 기존에 가지고 있던 매수 포지션이 청산 되는건가요? 아니면 기존 매수 포지션은 유지되고 신규 매도 포지션이 발생하는건가요? 위 2가지 경우가 아니라면 매수포지션이 청산되기 까지는 신규 포지션 진입이 안되는 건가요? 2. 실제 시스템 운영시 계좌에 전일 매수 포지션이 있는 경우 당일 시스템을 재 운영하면 전일의 매수 포지션이 남아 있음을 인식하고 계속 이어서 매매가 되는 건가요? 3. 만일 전일 매수 포지션을 장 마감전 수기로 청산하였다고 가정할 경우 시스템은 매수 포지션을 유지하고 있는 것으로 인식하여 신규 포지션 진입이 안되는 것 아닌가요?(위와 같이 코딩하였을 경우) 설명 좀 부탁드립니다. 4. 위와 같이 코딩했을 경우 첫번째 포지션 진입이 매도였는데 만약이 가격이 계속 상승하여 가지고 있던 매도 포지션이 하나도 청산되지 않은 경우 [스탑로스가 없는 경우] 전일 포지션은 놔두고 당일 시가 기준으로 다시 매매를 할수 있는 방법은 없는건가요? 만약에 방법이 있다면 시스템수식 부탁드립니다. 6. 문자랑 숫자를 더하는 수식 수정 부탁드립니다. if MaxEntries < 10 and 이펑5 < 이평10 then Sell("S"+NumToStr(maxentries),AtLimit,이평5,1) ; 위와 같이 코딩시 에러가 납니다. 진입계약수를 매도명으로 사용하여 아래와 같이 매도명을 나타내고 싶습니다. 한계약 매도시 "s1" 두계약 매도시 "s2" 세계약 매도시 "s3" 위 수식 수정 부탁드립니다. 감사합니다.
프로필 이미지
양치기
2021-01-17
1253
글번호 145504
시스템