커뮤니티

수식관련 문의드립니다.

프로필 이미지
jinjin12
2021-03-09 11:41:40
953
글번호 146906
답변완료

첨부 이미지

저번에 설정해 주신 수식으로 진행을 하는데 첨부한 파일의 그림처럼 시뮬레이션이 초기에만 진행이되다 매매진행이 안되는 것같습니다. 확인한번해주시면 감사하겠습니다. > 안녕하세요 예스스탁입니다. 청산함수에 이름을 지정하면 해당진입만 청산이 됩니다. 또한 청산에 각 진입별로 진입가를 사용하도록 변경했습니다. Input : short(12), long(26), signal(9); Var : MACDV(0) , MACDsig(0),EP1(0),EP2(0); MACDV = MACD(short, long); MACDsig = ema(MACDV,signal); if CrossUp(MACDv,MACDsig) Then Buy("진입1"); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "진입1" Then EP1 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "진입2" Then EP2 = LatestEntryPrice(0); if MaxEntries == 1 and C <= EntryPrice-300 and CrossUp(MACDv,MACDsig) Then buy("진입2"); if MaxEntries == 1 and C >= EP1+30 and CrossDown(MACDv,MACDsig) Then exitlong("청산1",OnClose,DEF,"진입1"); if MaxEntries == 2 and C >= EP2+10 and CrossDown(MACDv,MACDsig) Then exitlong("청산2",OnClose,DEF,"진입2");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-03-10 13:41:39

안녕하세요 예스스탁입니다. 청산1이 1번진입이 되어 있는 상태에서만 동작하게 되어 있어 수정해 드립니다 각 청산이 각 진입가대비 일정값이상 높아야 발생하므로 진입후 가격하락시 청산이 발생하지 않을 수 있습니다. Input : short(12), long(26), signal(9); Var : MACDV(0) , MACDsig(0),EP1(0),EP2(0); MACDV = MACD(short, long); MACDsig = ema(MACDV,signal); if CrossUp(MACDv,MACDsig) Then Buy("진입1"); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "진입1" Then EP1 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "진입2" Then EP2 = LatestEntryPrice(0); if MaxEntries == 1 and C <= EntryPrice-300 and CrossUp(MACDv,MACDsig) Then buy("진입2"); if EP1 > 0 and C >= EP1+30 and CrossDown(MACDv,MACDsig) Then exitlong("청산1",OnClose,DEF,"진입1"); if EP2 > 0 and C >= EP2+10 and CrossDown(MACDv,MACDsig) Then exitlong("청산2",OnClose,DEF,"진입2"); } else { EP1 = 0; EP2 = 0; } 즐거운 하루되세요 > jinjin12 님이 쓴 글입니다. > 제목 : 수식관련 문의드립니다. > 저번에 설정해 주신 수식으로 진행을 하는데 첨부한 파일의 그림처럼 시뮬레이션이 초기에만 진행이되다 매매진행이 안되는 것같습니다. 확인한번해주시면 감사하겠습니다. > 안녕하세요 예스스탁입니다. 청산함수에 이름을 지정하면 해당진입만 청산이 됩니다. 또한 청산에 각 진입별로 진입가를 사용하도록 변경했습니다. Input : short(12), long(26), signal(9); Var : MACDV(0) , MACDsig(0),EP1(0),EP2(0); MACDV = MACD(short, long); MACDsig = ema(MACDV,signal); if CrossUp(MACDv,MACDsig) Then Buy("진입1"); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "진입1" Then EP1 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "진입2" Then EP2 = LatestEntryPrice(0); if MaxEntries == 1 and C <= EntryPrice-300 and CrossUp(MACDv,MACDsig) Then buy("진입2"); if MaxEntries == 1 and C >= EP1+30 and CrossDown(MACDv,MACDsig) Then exitlong("청산1",OnClose,DEF,"진입1"); if MaxEntries == 2 and C >= EP2+10 and CrossDown(MACDv,MACDsig) Then exitlong("청산2",OnClose,DEF,"진입2");