Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Ошибки, баги, вопросы Ошибка после команды CopyClose...
귀하의 파일은 SIGNALS 모듈입니다. Expert Advisor 시스템에서 USER 인디케이터의 SIGNALS 모듈과 동일한 방식으로 구축됩니다. 즉, 모듈에서 생성된 신호에는 가중치가 있으며 이 가중치가 신호를 트리거하기에 충분하지 않을 수 있습니다.
귀하의 케이스와 관련하여 종결을 가장 잘 수행하는 방법에 대해 생각할 필요가 있습니다. 아마도 이것은 신호 모듈에서 수행되지 않아야 합니다.
어드바이저의 생성기를 통해 수집이 가능하도록 신호 모듈의 형태로 하는 것이 바람직할 것이다. 이 모듈이 실행되어야 하는 순간에 어드바이저의 두 번째 모듈에 있는 LongCondition() 및 ShortCondition()이 0 값을 반환합니다. 즉, weight=0인데 제가 제대로 이해하고 있는 건가요? 따라서 이 모듈의 신호의 무게가 더 커야 하지만 작동하지 않습니다. CheckCloseLong() 및 CheckCloseShort()에서 Print("------------"); 및 Print(time_GMT_DST()); 모듈이 정상적으로 작동하는 동안 각 틱 을 수신할 때 적절한 로그 항목을 작성해야 하는 항목을 올바르게 이해하고 있습니까? 항목이 작성되지 않고 CheckCloseLong() 및 CheckCloseShort()가 호출되지 않습니다. 캐치 뭔데?
어드바이저의 생성기를 통해 수집이 가능하도록 신호 모듈의 형태로 하는 것이 바람직할 것이다. 이 모듈이 실행되어야 하는 순간에 어드바이저의 두 번째 모듈에 있는 LongCondition() 및 ShortCondition()이 0 값을 반환합니다. 즉, weight=0인데 제가 제대로 이해하고 있는 건가요? 따라서 이 모듈의 신호의 무게가 더 커야 하지만 작동하지 않습니다. CheckCloseLong() 및 CheckCloseShort()에서 Print("------------"); 및 Print(time_GMT_DST()); 모듈의 정상적인 작동 중에 각 틱 이 도착할 때 로그에 적절한 항목을 작성해야 하는 항목을 올바르게 이해하고 있습니까? 항목이 작성되지 않고 CheckCloseLong() 및 CheckCloseShort()가 호출되지 않습니다. 캐치 뭔데?
물론 서툴게 설명하지만 배우는 중일 뿐
사용 방법
//--- methods of checking if the market models are formedvirtualint LongCondition( void );
virtualint ShortCondition( void );
안녕하세요, 거래 손실 카운터를 만드는 방법을 알려주십시오. EA는 기록의 마지막 거래를 분석합니다. 수익성이 없으면 변수에 +1을 추가하며, 이는 연속적으로 수익성이 없는 거래의 수입니다.
수익성 있는 거래가 발생하자마자 변수는 0으로 재설정되어야 합니다.
거래 내역에 대한 작업을 거부하고 OnTradeTransaction() 에서만 작업할 수 있습니다. 거기에서 "OUT" 유형으로 거래를 잡을 수 있습니다. 즉, 이는 포지션을 마감하는 것입니다. 그러한 거래가 발견되자마자 우리는 그것이 수익성이 있었는지 또는 수익성이 없었는지 판단합니다. 따라서 " 손실 " 카운터가 재설정되거나 증가됩니다.
//+------------------------------------------------------------------+//| TradeTransaction function |//+------------------------------------------------------------------+voidOnTradeTransaction ( constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result)
{
//--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif (type== TRADE_TRANSACTION_DEAL_ADD )
{
long deal_ticket = 0 ;
long deal_order = 0 ;
long deal_time = 0 ;
long deal_time_msc = 0 ;
long deal_type =- 1 ;
long deal_entry =- 1 ;
long deal_magic = 0 ;
long deal_reason =- 1 ;
long deal_position_id = 0 ;
double deal_volume = 0.0 ;
double deal_price = 0.0 ;
double deal_commission = 0.0 ;
double deal_swap = 0.0 ;
double deal_profit = 0.0 ;
string deal_symbol = "" ;
string deal_comment = "" ;
string deal_external_id = "" ;
if ( HistoryDealSelect (trans.deal))
{
deal_ticket = HistoryDealGetInteger (trans.deal, DEAL_TICKET );
deal_order = HistoryDealGetInteger (trans.deal, DEAL_ORDER );
deal_time = HistoryDealGetInteger (trans.deal, DEAL_TIME );
deal_time_msc = HistoryDealGetInteger (trans.deal, DEAL_TIME_MSC );
deal_type = HistoryDealGetInteger (trans.deal, DEAL_TYPE );
deal_entry = HistoryDealGetInteger (trans.deal, DEAL_ENTRY );
deal_magic = HistoryDealGetInteger (trans.deal, DEAL_MAGIC );
deal_reason = HistoryDealGetInteger (trans.deal, DEAL_REASON );
deal_position_id = HistoryDealGetInteger (trans.deal, DEAL_POSITION_ID );
deal_volume = HistoryDealGetDouble (trans.deal, DEAL_VOLUME );
deal_price = HistoryDealGetDouble (trans.deal, DEAL_PRICE );
deal_commission = HistoryDealGetDouble (trans.deal, DEAL_COMMISSION );
deal_swap = HistoryDealGetDouble (trans.deal, DEAL_SWAP );
deal_profit = HistoryDealGetDouble (trans.deal, DEAL_PROFIT );
deal_symbol = HistoryDealGetString (trans.deal, DEAL_SYMBOL );
deal_comment = HistoryDealGetString (trans.deal, DEAL_COMMENT );
deal_external_id = HistoryDealGetString (trans.deal, DEAL_EXTERNAL_ID );
}
elsereturn ;
if (deal_symbol== Symbol () && deal_magic==m_magic)
if (deal_entry== DEAL_ENTRY_OUT )
{
if (deal_commission+deal_swap+deal_profit> 0 )
{
losses= 0 ;
}
else
{
losses++;
}
}
}
}
그리고 OnInit()에서 수행할 거래 내역을 확인하십시오 - 어드바이저 시작 시 한 번.
표시 수정을 도와주세요 - 마지막 막대를 알 수 없습니다!
표시기는 2개의 막대마다 베팅이 이루어진다는 사실을 고려하여 바이너리 옵션에 대한 일련의 연속 승리를 계산합니다(즉, 1개의 원/실패 후 현재 막대를 기다림). 외부 변수는 다음 분석입니다. 가격 인상 또는 하락을 위한 이전 막대의 가격
모든 것이 작동하는 것 같지만 온라인 마지막 막대가 잘못 계산되어 결과적으로 M1에 표시기를 넣으면 기록의 데이터가 올바르게 계산되고 온라인에서 계산된 모든 것이 더 이상 정확하지 않습니다. 코드:
미리 감사합니다!
안녕하세요! 포지션 청산을 위한 시그널 모듈을 도와주세요. 내가 무엇을 잘못하고 있지?
귀하의 파일은 SIGNALS 모듈입니다. Expert Advisor 시스템에서 USER 인디케이터의 SIGNALS 모듈과 동일한 방식으로 구축됩니다. 즉, 모듈에서 생성된 신호에는 가중치가 있으며 이 가중치가 신호를 트리거하기에 충분하지 않을 수 있습니다.
귀하의 케이스와 관련하여 종결을 가장 잘 수행하는 방법에 대해 생각할 필요가 있습니다. 아마도 이것은 신호 모듈에서 수행되지 않아야 합니다.
귀하의 파일은 SIGNALS 모듈입니다. Expert Advisor 시스템에서 USER 인디케이터의 SIGNALS 모듈과 동일한 방식으로 구축됩니다. 즉, 모듈에서 생성된 신호에는 가중치가 있으며 이 가중치가 신호를 트리거하기에 충분하지 않을 수 있습니다.
귀하의 케이스와 관련하여 종결을 가장 잘 수행하는 방법에 대해 생각할 필요가 있습니다. 아마도 이것은 신호 모듈에서 수행되지 않아야 합니다.
어드바이저의 생성기를 통해 수집이 가능하도록 신호 모듈의 형태로 하는 것이 바람직할 것이다. 이 모듈이 실행되어야 하는 순간에 어드바이저의 두 번째 모듈에 있는 LongCondition() 및 ShortCondition()이 0 값을 반환합니다. 즉, weight=0인데 제가 제대로 이해하고 있는 건가요? 따라서 이 모듈의 신호의 무게가 더 커야 하지만 작동하지 않습니다. CheckCloseLong() 및 CheckCloseShort()에서 Print("------------"); 및 Print(time_GMT_DST()); 모듈이 정상적으로 작동하는 동안 각 틱 을 수신할 때 적절한 로그 항목을 작성해야 하는 항목을 올바르게 이해하고 있습니까? 항목이 작성되지 않고 CheckCloseLong() 및 CheckCloseShort()가 호출되지 않습니다. 캐치 뭔데?
물론 서툴게 설명하지만 배우는 중일 뿐어드바이저의 생성기를 통해 수집이 가능하도록 신호 모듈의 형태로 하는 것이 바람직할 것이다. 이 모듈이 실행되어야 하는 순간에 어드바이저의 두 번째 모듈에 있는 LongCondition() 및 ShortCondition()이 0 값을 반환합니다. 즉, weight=0인데 제가 제대로 이해하고 있는 건가요? 따라서 이 모듈의 신호의 무게가 더 커야 하지만 작동하지 않습니다. CheckCloseLong() 및 CheckCloseShort()에서 Print("------------"); 및 Print(time_GMT_DST()); 모듈의 정상적인 작동 중에 각 틱 이 도착할 때 로그에 적절한 항목을 작성해야 하는 항목을 올바르게 이해하고 있습니까? 항목이 작성되지 않고 CheckCloseLong() 및 CheckCloseShort()가 호출되지 않습니다. 캐치 뭔데?
물론 서툴게 설명하지만 배우는 중일 뿐사용 방법
CheckCloseLong 및 CheckCloseShort 대신.
고맙습니다.
안녕하세요, 거래 손실 카운터를 만드는 방법을 알려주세요?
EA는 기록의 마지막 거래를 분석합니다. 수익이 없으면 변수에 +1을 추가합니다. 이 값은 연속적으로 수익이 나지 않는 거래의 수입니다.
수익성 있는 거래가 발생하자마자 변수는 0으로 재설정되어야 합니다.
안녕하세요, 거래 손실 카운터를 만드는 방법을 알려주십시오.
EA는 기록의 마지막 거래를 분석합니다. 수익성이 없으면 변수에 +1을 추가하며, 이는 연속적으로 수익성이 없는 거래의 수입니다.
수익성 있는 거래가 발생하자마자 변수는 0으로 재설정되어야 합니다.
거래 내역에 대한 작업을 거부하고 OnTradeTransaction() 에서만 작업할 수 있습니다. 거기에서 "OUT" 유형으로 거래를 잡을 수 있습니다. 즉, 이는 포지션을 마감하는 것입니다. 그러한 거래가 발견되자마자 우리는 그것이 수익성이 있었는지 또는 수익성이 없었는지 판단합니다. 따라서 " 손실 " 카운터가 재설정되거나 증가됩니다.
그리고 OnInit()에서 수행할 거래 내역을 확인하십시오 - 어드바이저 시작 시 한 번.여보세요,
정보를 표시하기 전에 전문가 로그를 프로그래밍 방식으로 지우는 방법을 알려주실 수 있습니까?
Win API를 통해서만?
고맙습니다!
여보세요,
정보를 표시하기 전에 전문가 로그를 프로그래밍 방식으로 지우는 방법을 알려주실 수 있습니까?
Win API를 통해서만?
고맙습니다!