iMA_handle=iMA("EURUSD",PERIOD_H1,40,0,MODE_SMA,PRICE_CLOSE); //표시기를 연결하고 핸들을 가져옵니다. ....... ChartIndicatorAdd(ChartID(),0,iMA_handle); // 가격 차트에 인디케이터 추가그렇게 작동하지 않습니다. 하지만 기호와 시간을 제거하면 모든 것이 정상입니다.
iMA_handle=iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE);
축하합니다!
매우 간단하고 잘 작성된 코드... 라이브러리를 참조하면 제가 거의 100줄에 걸쳐서 한 일을 몇 줄로 해냈다고 생각합니다(롱 포지션을 오픈하고 청산하는 것만).
저는 특히 이 줄을 참고합니다:
if(m_Position.Select(my_symbol)) //이 심볼의 포지션이 이미 존재하는 경우
{
if(m_Position.PositionType()==POSITION_TYPE_SELL) m_Trade.PositionClose(my_symbol); //이 포지션이 매도 포지션이면 청산
if(m_Position.PositionType()==POSITION_TYPE_BUY) 반환합니다; //또는 매수 포지션이면 종료
}
m_Trade.Buy(0.1,my_symbol); //여기까지 왔다면 포지션이 없다는 뜻입니다; 그럼 오픈합니다
}
if(iMA_buf[1]<Close_buf[1] && iMA_buf[0]>Close_buf[0]) //지표 값이 종가보다 작았다가 커진 경우
{
if(m_Position.Select(my_symbol)) //이 심볼의 포지션이 이미 존재하는 경우
{
if(m_Position.PositionType()==POSITION_TYPE_BUY) m_Trade.PositionClose(my_symbol); //이 포지션이 매수 포지션이면 청산
if(m_Position.PositionType()==POSITION_TYPE_SELL) 반환합니다; //또는 매도 포지션이면 종료
}
m_Trade.Sell(0.1,my_symbol); //여기까지 왔다면 포지션이 없다는 뜻입니다; 그럼 열겠습니다
}
제가 놓친 유일한 것은 새 막대가 나타날 때만 거래하라는 명령일 수 있습니다. www. mql5.com/en/forum/5762 에서 토론이있었습니다.
저는 mogplus8이 게시한 다음 코드를 사용합니다:
static int LastBarCount=0;
if(Bars(_Symbol,_Period)>LastBarCount)
LastBarCount=Bars(_Symbol,_Period);
else
return;
거래에 대한 귀하의 진술에 대해 다소 의아합니다.
기사에 제시된 거래는 http://mqlmagazine.com/leading-article/orders-positions-and-deals-part-i/ 의 "씰"과 매우 유사합니다. 그들은 같은 것입니까? 그들의 차이점은 무엇입니까?
그건 그렇고, 링크 된 페이지에서 저자는 다음과 같이 말합니다: 시장에서 이루어진 각 주문은 다른 주문과 독립적으로 자체 결과를 가진 거래 그 자체입니다.
댓글에 주의를 기울인 사람들에게 가능한 오해를 명확히하기 위해 여기에 단어를 붙여 넣습니다.
감사합니다.
- mqlmagazine.com
새로운 기고글 초보자를 위한 간편 스타트 가이드 가 게재되었습니다:
여러분, 안녕하세요! 엑스퍼트 어드바이저 생성 방식이나 인디케이터 활용법을 쉽고 빠르게 이해할 수 있도록 돕고자 이번 글을 씁니다. 이 글은 초보자를 대상으로 하며 복잡하거나 난해한 예제는 포함하지 않습니다.
작성자: Dmitriy Parfenovich