커뮤니티

시스템식 부탁드립니다.

프로필 이미지
양치기
2023-03-08 13:37:50
915
글번호 167009
답변완료
항상 도움 주셔서 감사합니다. 몇가지 문의 드립니다. 1. 숫자를 문자로 변경 후 문자와 문자 합치는게 가능한가요? Bcnt = 2; Buy("B"+NumToStr(Bcnt); Buy("B2") ; 위와 표시하고 싶습니다? 가능한가요? 2. buy,sell, exitlong, exitshort 주문시 매수 및 청산 가격을 지정할 경우 봉완성 여부와 관계없이 해당 가격으로 체결이 되나요? 급등락하거나, 슬리피지 같은것 발생하면 체결이 안될수도 있지 않나요? 청산시 맨마지막 수량옵션에 대한 설명좀 부탁드립니다. 수량옵션 : 0 = 각 진입별로 지정수량을 청산 수량옵션 : 1 = 남은 수량에서 지정수량을 청산 수량옵션 : 2 = 조건 만족시 반복적으로 지정수량을 청산 위에서 지정수량은 무엇을 의미하나요? 수량 지정은 수량옵션 전에 지정하는 것으로 압니다만 설명좀 부탁드립니다. 3. 매수 또는 매도 포지션 진입이후 일정시간 동안 포지션 청산이 이루어지지 않는 경우 모든 잔고 청산하는 시스템식 부탁드립니다. 예) 매수 포지션 진입이후 청산가격이 도달하지 않아서 마지막 포지션 진입 후 2일(48시간)이 경과하면 모든 포지션 잔고를 청산하는 시스템식 부탁드립니다. 4. 당일시가에서 10틱씩 할때마다 1계약씩 매수 진입하여 총 5번 매수진입이 가능한 경우 3번째 매수후 3번째 매수가격 보다 10틱 상승한 경우 3번째 매수포지션 청산 1계약 청산 후 잔고 2계약에서 10틱이 다시 하락하면 다시 1계약 매수 1계약 매수 후 잔고 3계약에서 10틱이 다시 하락하면 다시 1계약 매수 잔고 4계약에서 마지막 4번째 매수가격보다 10틱 상승시 마지막 매수진입 1계약 매수포지션 청산 1계약 청산 후 잔고 3계약에서 가격이 10틱이 더 상승하면 3번째 진입한 매수포지션 청산 위와 같이 피라미팅 시스템식을 만들고 싶습니다. 도움 부탁드립니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-08 15:25:40

안녕하세요 예스스탁입니다. 1 문의하신 내용은 가능하지 않습니다. 신호의 이름은 변수로 지정될수 없고 별도로 문잡합치기가 가능하지 않습니다. 2 시스템은 신호가 발생하면 주문만 집행합니다. 실제 주문가격도 수식내에서 지정하는 옵션이 없습니다. 시스템 트레이딩 설정창의 매매탭에서 지정한 매매가격으로 주문이 집행됩니다. 지정한 가격과 시장상황등에 따라 미체결은 발생할 수 있습니다. ExitLong("명칭",신호타입,신호가격,"진입명",수량,수량옵션); ExitShort("명칭",신호타입,신호가격,"진입명",수량,수량옵션); 청산함수의 마지막 매개변수는 수량옵션을 지정합니다. 청산함수에 수량을 지정하지 않으면 전량청산이고 수량을 지정하면 지정한 수량만 청산을 합니다. 이때 수량옵션에 따라 청산되는 수량이 다르게 됩니다. 수량옵션을 0으로 지정하면 각 진입별로 지정한 수량을 차감해 청산합니다. 예를 들어 피라미딩으로 매수진입을 3계약씩 3번하고 청산수량은 2,수량옵션을 0으로 하면 청산시 각 진입별로 2계약씩 청산해 총 6계약이 집행됩니다. 일반적으로 많이 사용되는 옵션은 아닙니다. 수량옵션을 1로 지정하면 지정한 수량만 청산합니다. 일반적으로 가장 많이 사용하는 옵션입니다. 예를 들어 피라미딩으로 매수진입을 3계약씩 3번하고 청산수량은 2,수량옵션을 1으로 하면 청산시 2계약만 청산되게 됩니다. 수량옵션 2는 1과 동일합니다. 다만 차이점은 1개의 청산함수는 최대 발생이 진입의 횟수입니다. 진입이 1번 발생했으면 각 청산함수도 1번만 발생가능한데 이런 제한을 없애는게 수량옵션 2입니다. 진입횟수와 무관하게 각 청산함수를 제한없이 발생하는 옵션입니다. 예를 들어 진입은 파리미딩으로 3번하고 청산은 조건만족시마다 10회에 걸쳐 청산하는 전략을 구현할 때 사용합니다. 3 아래 내용 참고하시기 바랍니다. 진입 후 다다음날 15시에 청산입니다. var : dd(0); if Bdate != Bdate[1] Then dd = dd+1; if MarketPosition == 1 Then { if dd == dd[BarsSinceEntry]+2 and sTime == 150000 Then ExitLong(); } if MarketPosition == -1 Then { if dd == dd[BarsSinceEntry]+2 and sTime == 150000 Then ExitShort(); } 4 var : PP(0); if MarketPosition == 0 Then Buy("b",AtLimit,DayOpen(0)-PriceScale*10); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then PP = LatestEntryPrice(0); if CurrentContracts < CurrentContracts[1] Then PP = LatestExitPrice(0); if MaxEntries < 5 Then Buy("bb",AtStop,PP-PriceScale*10); } SetStopProfittarget(PriceScale*10, PointStop); 즐거운 하루되세요 > 양치기 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 항상 도움 주셔서 감사합니다. 몇가지 문의 드립니다. 1. 숫자를 문자로 변경 후 문자와 문자 합치는게 가능한가요? Bcnt = 2; Buy("B"+NumToStr(Bcnt); Buy("B2") ; 위와 표시하고 싶습니다? 가능한가요? 2. buy,sell, exitlong, exitshort 주문시 매수 및 청산 가격을 지정할 경우 봉완성 여부와 관계없이 해당 가격으로 체결이 되나요? 급등락하거나, 슬리피지 같은것 발생하면 체결이 안될수도 있지 않나요? 청산시 맨마지막 수량옵션에 대한 설명좀 부탁드립니다. 수량옵션 : 0 = 각 진입별로 지정수량을 청산 수량옵션 : 1 = 남은 수량에서 지정수량을 청산 수량옵션 : 2 = 조건 만족시 반복적으로 지정수량을 청산 위에서 지정수량은 무엇을 의미하나요? 수량 지정은 수량옵션 전에 지정하는 것으로 압니다만 설명좀 부탁드립니다. 3. 매수 또는 매도 포지션 진입이후 일정시간 동안 포지션 청산이 이루어지지 않는 경우 모든 잔고 청산하는 시스템식 부탁드립니다. 예) 매수 포지션 진입이후 청산가격이 도달하지 않아서 마지막 포지션 진입 후 2일(48시간)이 경과하면 모든 포지션 잔고를 청산하는 시스템식 부탁드립니다. 4. 당일시가에서 10틱씩 할때마다 1계약씩 매수 진입하여 총 5번 매수진입이 가능한 경우 3번째 매수후 3번째 매수가격 보다 10틱 상승한 경우 3번째 매수포지션 청산 1계약 청산 후 잔고 2계약에서 10틱이 다시 하락하면 다시 1계약 매수 1계약 매수 후 잔고 3계약에서 10틱이 다시 하락하면 다시 1계약 매수 잔고 4계약에서 마지막 4번째 매수가격보다 10틱 상승시 마지막 매수진입 1계약 매수포지션 청산 1계약 청산 후 잔고 3계약에서 가격이 10틱이 더 상승하면 3번째 진입한 매수포지션 청산 위와 같이 피라미팅 시스템식을 만들고 싶습니다. 도움 부탁드립니다. 감사합니다.