커뮤니티

문의드립니다.

프로필 이미지
레인메이커
2020-03-03 17:38:20
206
글번호 136539
답변완료
안녕하세요 항상 고생 많으십니다. 게시글과 유선상으로 친절히 설명해주신 덕분에 빠르게 매매시스템을 빠르게 구현해나가고 있게 되었습니다. 감사드립니다, 실제 시뮬레이션 전 몇 가지 제가 생각했을때 오류가 나타날 수 있는 케이스에 대해서 확인부탁드립니다. 혹시 유선 상이 편하시면 01공-구7공3-이구07 번으로 연락주셔도 괜찮습니다. 1. 수식에 매일 수량입력하게 되어 있는데 어제의 1일 차의 수량이 4여서 매수 4계약이 체결되었다고 가정했을 때 ,2일차에 매도선에 닿았고, 수량이 4로 설정되어 있다면, 어제의 매수 4계약 청산, 매도 4계약 진입. 이렇게 되는게 맞는지요? 2. 수식에 수량이 입력되었으므로, 비용수량 설정창에 따로 설정 필요 없거나, 설정해도 수식 상 수량으로 거래되는게 맞는지요? 3. if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); 이런 식으로 설정하게 되었을 때, 시초가에 갭으로 매수선 위에서 시작할때도, 시초가로 바로 매수 신호가 나가는게 맞는지요? 4. 오늘 시스템 적용 1일차로 가정하고, 매수 매도선 설정 후 4계약 설정시, 장전 시스템 시작 시가가 매수선 위에 있는 경우, 시가가 매수 - 매도선 사이에 있는 경우 시가가 매도선 밑에 있는 경우 각각, 진입, 청산이 어떻게 이뤄지게 되나요? if MarketPosition <= 0 and H < 매수선 Then 이니까 주문시작신호를 '모든 신호' 로 설정했을때, 최초로 매수선이나, 매도선을 돌파할때 매매가 일어나는 것으로 이해하고 있는데 맞나요? 5. 시초를 정확하게 잡아내려면 틱이나, 60분봉을 사용하면 안되고, 1분봉을 사용해야할 것 같은데 맞는지요? 6.매매 설정에서 매매가격-> 사용자 가격설정 -> AtStop 지정가, 신호가격 으로 설정시, 시세가 매수선 or 매도선을 돌파시 신호 발생되고, 매수선or 매도선 가격에 지정가 주문을 접수하는게 맞는지요? 7. 매수,매도선 터치 시 해당 가격에 지정가를 내게 되면 호가공백으로 체결 안되고 해 당 가격 돌파 해버릴 수 있지않나요? (예를 들어 매수선 1400이고 1390에서 대량 매 수 주문으로 한번에 1420의 수량까지 다 먹어버리는 경우, 가격은 1420, 시스템 주 문은 1400에 쌓임이렇게 될 것 같습니다) 이럴 경우가 발생할 수 있는게 맞는지? 맞다면, 신호는 매수가 발생했으므로, 매수가 체결 안된다면 다음번 매매 부터는 어 떻게 진행이 되나요? 매수 신호가 두 번 연속으로 나올 수가 있는지? 아니면 실제 매수 신호에 의한 체결상황은 고려하지 않으므로, 매수가 다 체결되었다고 가정되고(MarketPosition=1) 다음 번은 매도 주문이 나가게 되는지요? 8. 이 전략은 장전에 당일의 고정 매수, 매도가를 알 수 있고, 해당 가격 지정가 주문 하는 전략이기에, 6번의 문제가 있다면, 주문 신호 발생 타이밍을 장 시작하자마자, 그리고, 반대 포지션에 거래가 일어났을때로 설정하면, (매수진입신호가 뜨고, 1초 후?) 해당 가격을 돌파하면서 체결이 안되는 경우를 막을 수 있을 것같은데, 수식상으로는 if MarketPosition <= 0 and H < 매수선 Then if MarketPosition >= 0 and L > 매도선 Then 이 조건 충족 시 바로 주문신호를 보내면 되는대요. 체결 여부가 체크 안되거나 marketposition 이 신호 발생에 따라 가는 등으로, 문제가 생길 수 있는지 그렇다면 방법이 어떤게 있는지 문의드립니다. ----원본작성글---- 안녕하세요 예스스탁입니다. 아래식에 종목별 시작시간을 지정하셔서 사용하시기 바랍니다. 진입일 별로 수량이 다르므로 매수선/매도선과 함께 수량을 지정해주시면 됩니다. 통화중에 좀 혼동되어 시간지정을 잘못알려드렸습니다. (NextBarSdate == sdate and NextBarStime >= ntime and stime < ntime); 완성봉의 시간과 다음봉의 시간을 비교하기에 stime에 [1]은 필요가 없습니다. input : ntime(101500); var : 매수선(0),매도선(0),수량(0); Condition1 = (NextBarSdate > sdate and NextBarStime >= ntime) or (NextBarSdate == sdate and NextBarStime >= ntime and stime < ntime); if Condition1 == true and NextBarSdate == 20200225 Then { 매수선 = 1200; 매도선 = 900; 수량 = 4; } if Condition1 == true and NextBarSdate == 20200227 Then { 매수선 = 1100; 매도선 = 800; 수량 = 5; } if Condition1 == true and NextBarSdate == 20200228 Then { 매수선 = 1300; 매도선 = 1000; 수량 = 6; } if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선,수량); if MarketPosition >= 0 and L > 매도선 Then sell("s",AtStop,매도선,수량); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : 수정한 식입니다. > 안녕하세요 예스스탁입니다. 아래식 이용하시면 됩니다. 1 sdate는 봉의 달력상 날짜, bdate는 영업일기준 날짜입니다. NextBarSdate는 봉완성시 다음봉시가의 날짜입니다. Sdate > bdate -> 봉완성시 현재봉의 날짜는 영업일보다 크고(새벽시간을 의미합니다.) NextBarSdate == sdate -> 다음봉 시가의 날짜는 현재봉 날짜와 같으면(새로운 영업일시작) 매수선과 매도선이 같이 셋팅되서 시가에서 신호 발생하게 수정했습니다. var : 매수선(0),매도선(0); Condition1 = Sdate > bdate and NextBarSdate == sdate; if Condition1 == true and NextBarSdate == 20200225 Then { 매수선 = 1200; 매도선 = 900; } if Condition1 == true and NextBarSdate == 20200227 Then { 매수선 = 1100; 매도선 = 800; } if Condition1 == true and NextBarSdate == 20200228 Then { 매수선 = 1300; 매도선 = 1000; } if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); if MarketPosition >= 0 and H < 매도선 Then sell("s",AtStop,매도선); 2 항셍과 같은 종목은 거래소의 영업일 변경시간과 사용자분이 하루의 시작으로 인지하는 시간(10시15분)이 다릅니다. 거래소와 다른 시간을 하루의 시작으로 삼는 종목들은 아래식 이용하셔야 합니다. var : 매수선(0),매도선(0); Condition1 = (NextBarSdate > sdate and NextBarStime >= 101500) or (NextBarSdate == sdate and NextBarStime >= 101500 and stime[1] < 101500); if Condition1 == true and NextBarSdate == 20200225 Then { 매수선 = 1200; 매도선 = 900; } if Condition1 == true and NextBarSdate == 20200227 Then { 매수선 = 1100; 매도선 = 800; } if Condition1 == true and NextBarSdate == 20200228 Then { 매수선 = 1300; 매도선 = 1000; } if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); if MarketPosition >= 0 and L > 매도선 Then sell("s",AtStop,매도선); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 문의드립니다. > 안녕하세요 예스스탁입니다. 문의하신 내용은 가능하지 않습니다. 1 input : 매수선(1200),매도선(900); if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); if MarketPosition >= 0 and H < 매도선 Then sell("s",AtStop,매도선); 지정한 가격을 터치할 때 진입청산하는 내용은 위와 같이 작성이 가능하지만 매일 혹은 간혹 변경하는 매수선과 매도선을 기억해서 포지션을 이어같수가 없습니다. 시스템은 차트에 적용하면 차트 첫봉부터 현재봉쪽으로 계산해 오면서 신호를 발생하는데 매수선값과 매도선값을 변경하면 과거봉의 신호도 모두 변경되므로 전일에 들어간 포지션을 이어갈수 없습니다. 2 예스랭귀지는 차트에 적용되어 차트 데이타만 이용 가능합니다. 잔고의 증거금을 인식해 풀로 진입할 물량등을 계산할수 없습니다. 3 프로그램이 실행되고 있어야 동작합니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 레인메이커 님이 쓴 글입니다. > 제목 : 수식 작성 문의드립니다. > 안녕하세요 고생이 많으십니다. 해외선물 자동매매프로그램을 작성하고자하는데 수식 작성 도움 부탁드립니다. 자동매매프로그램 방식은 1. 사용자가 장 시작 전 매수가격 , 매도가격을 기준으로 설정. (매일매일 기준선 변경) (예를 들어 1100원 매수, 900원 매도 이런식으로 매일 설정) -> 현재 가격 1200원 5계약 매수포지션 보유 가정 시 매매 방식 설명 3. 1200 -> 900원 하락하며 기준 매도선 건드릴 시 900원에 매수포지션 전량 청산, 주문 가능 수 만큼 매도포지션 진입 (청산, 진입 모두 900원) 4. 900원 -> 1100원 오르며 매수선 건드릴 시, 매도포지션 전량 청산, 주문 가능 수 만큼 매수포지션 전환 (기준 가격 1100원) 5. 시초가매매의 경우 시초가가 당일 설정된 매수가격 위에서 형성되면 -> 매수포지션 보유 시 포지션 유지. -> 매도 포지션 보유 시 시초가에 포지션 청산, 매수 포지션 진입. * 시초가가 당일 설정한 매도 가격 아래에서 형성 시 반대로. 부연 설명> 매일 매일 새롭게 설정하는 매수선, 매도선을 기준으로 상승하며 매수선을 건드릴 시 매도포지션 청산과 동시에 증거금 풀로 매수포지션 진입. 하방으로 떨어지면 반대로 청산, 진입 하는 방식입니다. 즉, 오버나잇해가며 항상 포지션을 보유하는 방식이고, 포지션진입은 항상 반대포지션 청산과 함께 일어나며, 그때의 청산, 진입가는 동일합니다. 포지션진입시 청산된 증거금 가능액을 활용 풀로 매수하게 되구요. 예스트레이더 꺼놔도 주문 확인 없이 자동으로 매매되게 하고 싶습니다. 바로 활용 가능하게 수식 작성부탁드립니다. 오늘 하루도 건강 유의하시고 업무 힘내시기 바랍니다!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-03-04 14:15:01

> 레인메이커 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요 항상 고생 많으십니다. 게시글과 유선상으로 친절히 설명해주신 덕분에 빠르게 매매시스템을 빠르게 구현해나가고 있게 되었습니다. 감사드립니다, 실제 시뮬레이션 전 몇 가지 제가 생각했을때 오류가 나타날 수 있는 케이스에 대해서 확인부탁드립니다. 혹시 유선 상이 편하시면 01공-구7공3-이구07 번으로 연락주셔도 괜찮습니다. 1. 수식에 매일 수량입력하게 되어 있는데 어제의 1일 차의 수량이 4여서 매수 4계약이 체결되었다고 가정했을 때 ,2일차에 매도선에 닿았고, 수량이 4로 설정되어 있다면, 어제의 매수 4계약 청산, 매도 4계약 진입. 이렇게 되는게 맞는지요? 2. 수식에 수량이 입력되었으므로, 비용수량 설정창에 따로 설정 필요 없거나, 설정해도 수식 상 수량으로 거래되는게 맞는지요? 3. if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); 이런 식으로 설정하게 되었을 때, 시초가에 갭으로 매수선 위에서 시작할때도, 시초가로 바로 매수 신호가 나가는게 맞는지요? 4. 오늘 시스템 적용 1일차로 가정하고, 매수 매도선 설정 후 4계약 설정시, 장전 시스템 시작 시가가 매수선 위에 있는 경우, 시가가 매수 - 매도선 사이에 있는 경우 시가가 매도선 밑에 있는 경우 각각, 진입, 청산이 어떻게 이뤄지게 되나요? if MarketPosition <= 0 and H < 매수선 Then 이니까 주문시작신호를 '모든 신호' 로 설정했을때, 최초로 매수선이나, 매도선을 돌파할때 매매가 일어나는 것으로 이해하고 있는데 맞나요? 5. 시초를 정확하게 잡아내려면 틱이나, 60분봉을 사용하면 안되고, 1분봉을 사용해야할 것 같은데 맞는지요? 6.매매 설정에서 매매가격-> 사용자 가격설정 -> AtStop 지정가, 신호가격 으로 설정시, 시세가 매수선 or 매도선을 돌파시 신호 발생되고, 매수선or 매도선 가격에 지정가 주문을 접수하는게 맞는지요? 7. 매수,매도선 터치 시 해당 가격에 지정가를 내게 되면 호가공백으로 체결 안되고 해 당 가격 돌파 해버릴 수 있지않나요? (예를 들어 매수선 1400이고 1390에서 대량 매 수 주문으로 한번에 1420의 수량까지 다 먹어버리는 경우, 가격은 1420, 시스템 주 문은 1400에 쌓임이렇게 될 것 같습니다) 이럴 경우가 발생할 수 있는게 맞는지? 맞다면, 신호는 매수가 발생했으므로, 매수가 체결 안된다면 다음번 매매 부터는 어 떻게 진행이 되나요? 매수 신호가 두 번 연속으로 나올 수가 있는지? 아니면 실제 매수 신호에 의한 체결상황은 고려하지 않으므로, 매수가 다 체결되었다고 가정되고(MarketPosition=1) 다음 번은 매도 주문이 나가게 되는지요? 8. 이 전략은 장전에 당일의 고정 매수, 매도가를 알 수 있고, 해당 가격 지정가 주문 하는 전략이기에, 6번의 문제가 있다면, 주문 신호 발생 타이밍을 장 시작하자마자, 그리고, 반대 포지션에 거래가 일어났을때로 설정하면, (매수진입신호가 뜨고, 1초 후?) 해당 가격을 돌파하면서 체결이 안되는 경우를 막을 수 있을 것같은데, 수식상으로는 if MarketPosition <= 0 and H < 매수선 Then if MarketPosition >= 0 and L > 매도선 Then 이 조건 충족 시 바로 주문신호를 보내면 되는대요. 체결 여부가 체크 안되거나 marketposition 이 신호 발생에 따라 가는 등으로, 문제가 생길 수 있는지 그렇다면 방법이 어떤게 있는지 문의드립니다. ----원본작성글---- 안녕하세요 예스스탁입니다. 아래식에 종목별 시작시간을 지정하셔서 사용하시기 바랍니다. 진입일 별로 수량이 다르므로 매수선/매도선과 함께 수량을 지정해주시면 됩니다. 통화중에 좀 혼동되어 시간지정을 잘못알려드렸습니다. (NextBarSdate == sdate and NextBarStime >= ntime and stime < ntime); 완성봉의 시간과 다음봉의 시간을 비교하기에 stime에 [1]은 필요가 없습니다. input : ntime(101500); var : 매수선(0),매도선(0),수량(0); Condition1 = (NextBarSdate > sdate and NextBarStime >= ntime) or (NextBarSdate == sdate and NextBarStime >= ntime and stime < ntime); if Condition1 == true and NextBarSdate == 20200225 Then { 매수선 = 1200; 매도선 = 900; 수량 = 4; } if Condition1 == true and NextBarSdate == 20200227 Then { 매수선 = 1100; 매도선 = 800; 수량 = 5; } if Condition1 == true and NextBarSdate == 20200228 Then { 매수선 = 1300; 매도선 = 1000; 수량 = 6; } if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선,수량); if MarketPosition >= 0 and L > 매도선 Then sell("s",AtStop,매도선,수량); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : 수정한 식입니다. > 안녕하세요 예스스탁입니다. 아래식 이용하시면 됩니다. 1 sdate는 봉의 달력상 날짜, bdate는 영업일기준 날짜입니다. NextBarSdate는 봉완성시 다음봉시가의 날짜입니다. Sdate > bdate -> 봉완성시 현재봉의 날짜는 영업일보다 크고(새벽시간을 의미합니다.) NextBarSdate == sdate -> 다음봉 시가의 날짜는 현재봉 날짜와 같으면(새로운 영업일시작) 매수선과 매도선이 같이 셋팅되서 시가에서 신호 발생하게 수정했습니다. var : 매수선(0),매도선(0); Condition1 = Sdate > bdate and NextBarSdate == sdate; if Condition1 == true and NextBarSdate == 20200225 Then { 매수선 = 1200; 매도선 = 900; } if Condition1 == true and NextBarSdate == 20200227 Then { 매수선 = 1100; 매도선 = 800; } if Condition1 == true and NextBarSdate == 20200228 Then { 매수선 = 1300; 매도선 = 1000; } if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); if MarketPosition >= 0 and H < 매도선 Then sell("s",AtStop,매도선); 2 항셍과 같은 종목은 거래소의 영업일 변경시간과 사용자분이 하루의 시작으로 인지하는 시간(10시15분)이 다릅니다. 거래소와 다른 시간을 하루의 시작으로 삼는 종목들은 아래식 이용하셔야 합니다. var : 매수선(0),매도선(0); Condition1 = (NextBarSdate > sdate and NextBarStime >= 101500) or (NextBarSdate == sdate and NextBarStime >= 101500 and stime[1] < 101500); if Condition1 == true and NextBarSdate == 20200225 Then { 매수선 = 1200; 매도선 = 900; } if Condition1 == true and NextBarSdate == 20200227 Then { 매수선 = 1100; 매도선 = 800; } if Condition1 == true and NextBarSdate == 20200228 Then { 매수선 = 1300; 매도선 = 1000; } if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); if MarketPosition >= 0 and L > 매도선 Then sell("s",AtStop,매도선); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 문의드립니다. > 안녕하세요 예스스탁입니다. 문의하신 내용은 가능하지 않습니다. 1 input : 매수선(1200),매도선(900); if MarketPosition <= 0 and H < 매수선 Then buy("b",AtStop,매수선); if MarketPosition >= 0 and H < 매도선 Then sell("s",AtStop,매도선); 지정한 가격을 터치할 때 진입청산하는 내용은 위와 같이 작성이 가능하지만 매일 혹은 간혹 변경하는 매수선과 매도선을 기억해서 포지션을 이어같수가 없습니다. 시스템은 차트에 적용하면 차트 첫봉부터 현재봉쪽으로 계산해 오면서 신호를 발생하는데 매수선값과 매도선값을 변경하면 과거봉의 신호도 모두 변경되므로 전일에 들어간 포지션을 이어갈수 없습니다. 2 예스랭귀지는 차트에 적용되어 차트 데이타만 이용 가능합니다. 잔고의 증거금을 인식해 풀로 진입할 물량등을 계산할수 없습니다. 3 프로그램이 실행되고 있어야 동작합니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 레인메이커 님이 쓴 글입니다. > 제목 : 수식 작성 문의드립니다. > 안녕하세요 고생이 많으십니다. 해외선물 자동매매프로그램을 작성하고자하는데 수식 작성 도움 부탁드립니다. 자동매매프로그램 방식은 1. 사용자가 장 시작 전 매수가격 , 매도가격을 기준으로 설정. (매일매일 기준선 변경) (예를 들어 1100원 매수, 900원 매도 이런식으로 매일 설정) -> 현재 가격 1200원 5계약 매수포지션 보유 가정 시 매매 방식 설명 3. 1200 -> 900원 하락하며 기준 매도선 건드릴 시 900원에 매수포지션 전량 청산, 주문 가능 수 만큼 매도포지션 진입 (청산, 진입 모두 900원) 4. 900원 -> 1100원 오르며 매수선 건드릴 시, 매도포지션 전량 청산, 주문 가능 수 만큼 매수포지션 전환 (기준 가격 1100원) 5. 시초가매매의 경우 시초가가 당일 설정된 매수가격 위에서 형성되면 -> 매수포지션 보유 시 포지션 유지. -> 매도 포지션 보유 시 시초가에 포지션 청산, 매수 포지션 진입. * 시초가가 당일 설정한 매도 가격 아래에서 형성 시 반대로. 부연 설명> 매일 매일 새롭게 설정하는 매수선, 매도선을 기준으로 상승하며 매수선을 건드릴 시 매도포지션 청산과 동시에 증거금 풀로 매수포지션 진입. 하방으로 떨어지면 반대로 청산, 진입 하는 방식입니다. 즉, 오버나잇해가며 항상 포지션을 보유하는 방식이고, 포지션진입은 항상 반대포지션 청산과 함께 일어나며, 그때의 청산, 진입가는 동일합니다. 포지션진입시 청산된 증거금 가능액을 활용 풀로 매수하게 되구요. 예스트레이더 꺼놔도 주문 확인 없이 자동으로 매매되게 하고 싶습니다. 바로 활용 가능하게 수식 작성부탁드립니다. 오늘 하루도 건강 유의하시고 업무 힘내시기 바랍니다!