커뮤니티

청산식 입니다 오류

프로필 이미지
일일일백
2024-11-13 15:43:28
568
글번호 185235
답변완료

첨부 이미지

안녕하세요. 해외선물 거래중입니다. 10년전에 만들었던 청산식 입니다. 그런데 강제 청산을 설정하면 그 뒤에 신호가 발생되지 않는 오류가 나옵니다.수정 부탁드립니다.진입후 청산시 수익이면 1계약, 손실이면 마틴방식진입입니다. 스위칭매매 기준입니다. 예제식은 아무 전략 이나 넣어서 해주세요. if CrossUp(c,highest(H[1],수치)) and var1>기간 Then{ if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then buy("b11",OnClose,def,cnt); //첫진입 if MarketPosition == -1 and C <= EntryPrice Then buy("b21",OnClose,def,cnt ); if MarketPosition == -1 and C > EntryPrice then { if CurrentContracts == 1 then buy("b22", OnClose,def,2); if CurrentContracts == 2 then buy("b23", OnClose,def,4); if CurrentContracts == 4 then buy("b24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then buy("b25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then buy("b26", OnClose,def,1); } } } if Crossdown(c,lowest(L[1],수치)) and var1 > 기간 Then{ if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then Sell("s11",OnClose,def,cnt); if MarketPosition == 1 and c >= EntryPrice Then Sell("s21",OnClose,def,cnt); if MarketPosition == 1 and c < EntryPrice Then { if CurrentContracts == 1 then sell("s22", OnClose,def,2); if CurrentContracts == 2 then sell("s23", OnClose,def,4); if CurrentContracts == 4 then sell("s24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then sell("s25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then sell("s26", OnClose,def,1); } }
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2024-11-14 11:51:51

안녕하세요 예스스탁입니다. if CrossUp(c,highest(H[1],수치)) and var1>기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then buy("b11",OnClose,def,cnt); //첫진입 if MarketPosition == -1 and C <= EntryPrice Then buy("b21",OnClose,def,cnt ); ~~~~~~~ if Crossdown(c,lowest(L[1],수치)) and var1 > 기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then Sell("s11",OnClose,def,cnt); if MarketPosition == 1 and c >= EntryPrice Then Sell("s21",OnClose,def,cnt); 올리신 수식에 보시면 위와 같이 매수와 매도의 첫진입이 이전 거래가 수익일때만 진입하거나 아니면 반대포지션 상태일때만 진입하게 되어 있습니다. 손절매가 발생하면 직전 거래는 손실이 발생했으므로 이후에는 진입을 못하게 됩니다. 현재 무포지션이고 직전거래가 손실이면 직전 거래의 수량의 2배로 진입하게 추가해 드립니다. input : 수치(20),기간(1); var : cnt(1); if CrossUp(c,highest(H[1],수치)) and var1>기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) >= 0) Then buy("b11",OnClose,def,cnt); //첫진입 if MarketPosition == -1 and C <= EntryPrice Then buy("b21",OnClose,def,cnt ); if MarketPosition == 0 and PositionProfit(1) < 0 Then buy("b3",OnClose,def,MaxContracts(1)*2); if MarketPosition == -1 and C > EntryPrice then { if CurrentContracts == 1 then buy("b22", OnClose,def,2); if CurrentContracts == 2 then buy("b23", OnClose,def,4); if CurrentContracts == 4 then buy("b24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then buy("b25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then buy("b26", OnClose,def,1); } } } if Crossdown(c,lowest(L[1],수치)) and var1 > 기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) >= 0) Then Sell("s11",OnClose,def,cnt); if MarketPosition == 1 and c >= EntryPrice Then Sell("s21",OnClose,def,cnt); if MarketPosition == 0 and PositionProfit(1) < 0 Then Sell("s3",OnClose,def,MaxContracts(1)*2); if MarketPosition == 1 and c < EntryPrice Then { if CurrentContracts == 1 then sell("s22", OnClose,def,2); if CurrentContracts == 2 then sell("s23", OnClose,def,4); if CurrentContracts == 4 then sell("s24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then sell("s25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then sell("s26", OnClose,def,1); } } } 즐거운 하루되세요 > 일일일백 님이 쓴 글입니다. > 제목 : 청산식 입니다 오류 > 안녕하세요. 해외선물 거래중입니다. 10년전에 만들었던 청산식 입니다. 그런데 강제 청산을 설정하면 그 뒤에 신호가 발생되지 않는 오류가 나옵니다.수정 부탁드립니다.진입후 청산시 수익이면 1계약, 손실이면 마틴방식진입입니다. 스위칭매매 기준입니다. 예제식은 아무 전략 이나 넣어서 해주세요. if CrossUp(c,highest(H[1],수치)) and var1>기간 Then{ if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then buy("b11",OnClose,def,cnt); //첫진입 if MarketPosition == -1 and C <= EntryPrice Then buy("b21",OnClose,def,cnt ); if MarketPosition == -1 and C > EntryPrice then { if CurrentContracts == 1 then buy("b22", OnClose,def,2); if CurrentContracts == 2 then buy("b23", OnClose,def,4); if CurrentContracts == 4 then buy("b24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then buy("b25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then buy("b26", OnClose,def,1); } } } if Crossdown(c,lowest(L[1],수치)) and var1 > 기간 Then{ if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then Sell("s11",OnClose,def,cnt); if MarketPosition == 1 and c >= EntryPrice Then Sell("s21",OnClose,def,cnt); if MarketPosition == 1 and c < EntryPrice Then { if CurrentContracts == 1 then sell("s22", OnClose,def,2); if CurrentContracts == 2 then sell("s23", OnClose,def,4); if CurrentContracts == 4 then sell("s24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then sell("s25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then sell("s26", OnClose,def,1); } }
프로필 이미지

일일일백

2024-11-18 18:18:04

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : 청산식 입니다 오류 > 안녕하세요 예스스탁입니다. if CrossUp(c,highest(H[1],수치)) and var1>기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then buy("b11",OnClose,def,cnt); //첫진입 if MarketPosition == -1 and C <= EntryPrice Then buy("b21",OnClose,def,cnt ); ~~~~~~~ if Crossdown(c,lowest(L[1],수치)) and var1 > 기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) > 0) Then Sell("s11",OnClose,def,cnt); if MarketPosition == 1 and c >= EntryPrice Then Sell("s21",OnClose,def,cnt); 올리신 수식에 보시면 위와 같이 매수와 매도의 첫진입이 이전 거래가 수익일때만 진입하거나 아니면 반대포지션 상태일때만 진입하게 되어 있습니다. 손절매가 발생하면 직전 거래는 손실이 발생했으므로 이후에는 진입을 못하게 됩니다. 현재 무포지션이고 직전거래가 손실이면 직전 거래의 수량의 2배로 진입하게 추가해 드립니다. input : 수치(20),기간(1); var : cnt(1); if CrossUp(c,highest(H[1],수치)) and var1>기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) >= 0) Then buy("b11",OnClose,def,cnt); //첫진입 if MarketPosition == -1 and C <= EntryPrice Then buy("b21",OnClose,def,cnt ); if MarketPosition == 0 and PositionProfit(1) < 0 Then buy("b3",OnClose,def,MaxContracts(1)*2); if MarketPosition == -1 and C > EntryPrice then { if CurrentContracts == 1 then buy("b22", OnClose,def,2); if CurrentContracts == 2 then buy("b23", OnClose,def,4); if CurrentContracts == 4 then buy("b24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then buy("b25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then buy("b26", OnClose,def,1); } } } if Crossdown(c,lowest(L[1],수치)) and var1 > 기간 Then { if TotalTrades == 0 or (MarketPosition == 0 and PositionProfit(1) >= 0) Then Sell("s11",OnClose,def,cnt); if MarketPosition == 1 and c >= EntryPrice Then Sell("s21",OnClose,def,cnt); if MarketPosition == 0 and PositionProfit(1) < 0 Then Sell("s3",OnClose,def,MaxContracts(1)*2); if MarketPosition == 1 and c < EntryPrice Then { if CurrentContracts == 1 then sell("s22", OnClose,def,2); if CurrentContracts == 2 then sell("s23", OnClose,def,4); if CurrentContracts == 4 then sell("s24", OnClose,def,8); if CurrentContracts == 8 then { if CurrentContracts[BarsSinceEntry] == 4 then sell("s25", OnClose,def,8); if CurrentContracts[BarsSinceEntry] == 8 then sell("s26", OnClose,def,1); } } } 즐거운 하루되세요 위의 식에서 현재 무포지션이고 직전거래가 손실이면 직전 거래의 수량의 2배가 아닌 +1개씩 진입하게 추가하게 해주세요. 매도 매수 진입 청산시 손절시 직전거래의 2배가 아닌 직전거래의 +1계약씩 올라가게 부탁드립니다~ 수고하세요~