예스스탁
예스스탁 답변
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");