커뮤니티

시스템식 부탁드립니다.

프로필 이미지
양치기
2023-12-20 05:53:51
740
글번호 175038
답변완료
항상 도움 주셔서 감사합니다. 종목: 해외선물(통화종목) 차트 : 60분봉 요청식1 : 아래와 같은 시스템식에서 평가 잔고금액(예수금+평가금액)이 500$ 이하이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. (보통 해외선물 매매시 예수금(증거금)을 원화로 가지고 있는데 $(달러)로 코딩 가능한가요?-원화 예수금이든 달러 예수금이든 평가금액을 체크후 일정금액 이상 손실이면 청산하고 싶습니다.) 요청식2 : 아래와 같은 시스템식에서 평가 잔고금액(예수금+평가금액)이 1,000$ 이상이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. (보통 해외선물 매매시 예수금(증거금)을 원화로 가지고 있는데 $(달러)로 코딩 가능한가요?-원화 예수금이든 달러 예수금이든 평가금액을 체크후 일정금액 이상 수익이면 청산하고 싶습니다.) 요청식3 : 아래와 같은 시스템식에서 가격이 떨어져서 손실이 나면 2배로 추가 매수를 들어가는데 진입한 거래별로 일정한 간격(손절간격)으로 손절(청산)을 설정하고 싶습니다. 예) 1계약 = 100포인트 가격에 매수진입 2계약 = 90포인트 가격에 매수진입 4계약 = 80포인트 가격에 매수진입 위와 같이 진입했다고 가정시 1계약 = 100포인트 매수진입에 대해 가격이 50포인트 도달시 1계약 청산 2계약 = 90포인트 매수진입에 대해 가격이 40포인트 도달시 2계약 청산 4계약 = 80포인트 매수진입에 대해 가격이 30포인트 도달시 4계약 청산 요청식4 : 아래와 같은 시스템식에서 매수진입 횟수가 10회 이상이면 모두 청산후 매매중지 시스템식 부탁드립니다. 요청식5 : 아래와 같은 시스템식에서 매수진입 계약이 100계약 이내까지만 추가 진입하도록 시스템식 부탁드립니다. 또는 매수진입 횟수가 10회 이내까지만 추가 진입하도록 시스템식 부탁드립니다. 요청식6 : 아래와 같은 시스템식에서 잔고는 빼고 평가손실 금액이 -100$ 이상이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. 요청식7 : 아래와 같은 시스템식에서 잔고는 빼고 평가이익 금액이 100$ 이상이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. #-------------------------------------------- input : pst(1) ; input : 진입가격(10) ; input : 청산가격(10) ; var : vol(0) ; value1 = 진입간격/pointvluae ; value2 = 청산간격/pointvluae ; if pst == 1 Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if MaxEntries > MaxEntries[1] Then vol = vol*2; Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } #-------------------------------------------- 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-12-20 16:41:55

안녕하세요 예스스탁입니다. 1,2 예수금과 같은 실계좌관련은 모두 가능하지 않습니다. 시스템은 차트에 발생한 신호를 기준으로만 제어가 가능합니다. 3 input : pst(1) ; input : 진입가격(10) ; input : 청산가격(10) ; input : 손절(50) ;//50포인트 var : vol(0) ; value1 = 진입가격/pointvalue ; value2 = 청산가격/pointvalue ; if pst == 1 Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if MaxEntries > MaxEntries[1] Then { vol = vol*2; } Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } SetStopLoss(손절,PointStop); 4 input : pst(1) ; input : 진입가격(10) ; input : 청산가격(10) ; var : vol(0),xCond(False) ; value1 = 진입가격/pointvalue ; value2 = 청산가격/pointvalue ; if Bdate != Bdate[1] Then Xcond = False; if TotalTrades > TotalTrades[1] and IsExitName("bx",1) == true Then Xcond = true; if pst == 1 and Xcond == False Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if MaxEntries > MaxEntries[1] Then { vol = vol*2; } if MaxEntries < 9 Then Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol); if MaxEntries == 9 Then ExitLong("bx",AtStop,EntryPrice(0)-PriceScale*(value1*MaxEntries)); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } 5 input : pst(1) ; input : 진입가격(10) ; input : 청산가격(10) ; var : vol(0) ; value1 = 진입간격/pointvalue ; value2 = 청산간격/pointvalue ; if pst == 1 Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if MaxEntries > MaxEntries[1] Then vol = vol*2; if MaxEntries < 10 Then Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } 6,7 input : pst(1) ; input : 진입가격(10) ; input : 청산가격(10) ; Input : 당일수익달러(100),당일손실달러(100); var : vol(0),당일수익(0),당일손실(0),Xcond(False),N1(0),daypl(0); 당일수익 = 당일수익달러/BigPointValue; 당일손실 = 당일손실달러/BigPointValue; value1 = 진입가격/pointvalue ; value2 = 청산가격/pointvalue ; if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } if pst == 1 and Xcond == False Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if MaxEntries > MaxEntries[1] Then vol = vol*2; Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then{ ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } } 즐거운 하루되세요 > 양치기 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 항상 도움 주셔서 감사합니다. 종목: 해외선물(통화종목) 차트 : 60분봉 요청식1 : 아래와 같은 시스템식에서 평가 잔고금액(예수금+평가금액)이 500$ 이하이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. (보통 해외선물 매매시 예수금(증거금)을 원화로 가지고 있는데 $(달러)로 코딩 가능한가요?-원화 예수금이든 달러 예수금이든 평가금액을 체크후 일정금액 이상 손실이면 청산하고 싶습니다.) 요청식2 : 아래와 같은 시스템식에서 평가 잔고금액(예수금+평가금액)이 1,000$ 이상이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. (보통 해외선물 매매시 예수금(증거금)을 원화로 가지고 있는데 $(달러)로 코딩 가능한가요?-원화 예수금이든 달러 예수금이든 평가금액을 체크후 일정금액 이상 수익이면 청산하고 싶습니다.) 요청식3 : 아래와 같은 시스템식에서 가격이 떨어져서 손실이 나면 2배로 추가 매수를 들어가는데 진입한 거래별로 일정한 간격(손절간격)으로 손절(청산)을 설정하고 싶습니다. 예) 1계약 = 100포인트 가격에 매수진입 2계약 = 90포인트 가격에 매수진입 4계약 = 80포인트 가격에 매수진입 위와 같이 진입했다고 가정시 1계약 = 100포인트 매수진입에 대해 가격이 50포인트 도달시 1계약 청산 2계약 = 90포인트 매수진입에 대해 가격이 40포인트 도달시 2계약 청산 4계약 = 80포인트 매수진입에 대해 가격이 30포인트 도달시 4계약 청산 요청식4 : 아래와 같은 시스템식에서 매수진입 횟수가 10회 이상이면 모두 청산후 매매중지 시스템식 부탁드립니다. 요청식5 : 아래와 같은 시스템식에서 매수진입 계약이 100계약 이내까지만 추가 진입하도록 시스템식 부탁드립니다. 또는 매수진입 횟수가 10회 이내까지만 추가 진입하도록 시스템식 부탁드립니다. 요청식6 : 아래와 같은 시스템식에서 잔고는 빼고 평가손실 금액이 -100$ 이상이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. 요청식7 : 아래와 같은 시스템식에서 잔고는 빼고 평가이익 금액이 100$ 이상이면 전체청산 후 매매중지하는 시스템식 부탁드립니다. #-------------------------------------------- input : pst(1) ; input : 진입가격(10) ; input : 청산가격(10) ; var : vol(0) ; value1 = 진입간격/pointvluae ; value2 = 청산간격/pointvluae ; if pst == 1 Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if MaxEntries > MaxEntries[1] Then vol = vol*2; Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol); ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } #-------------------------------------------- 감사합니다.