MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1550

 
законопослушный гражданин :

코드 작성자는 내가 이해하는 한 다음을 제안했습니다.

올빼미가 스탑과 테이크를 사용하여 구매 거래를 시작하면 해당 코드 조각은 구매 거래 대신 스탑 및 테이크를 사용 하여 같은 장소(스프레드 고려)에서 동시에 판매 거래를 엽니다.

따라서 EA의 진입점을 찾는 논리는 변경되지 않고 확산을 고려하여 방향만 변경됩니다.

그게 바로 내가 필요한 것입니다

모든 거래의 역전이 필요한 경우 여기에서 교환하십시오.

vOrderOpenSell 및 vOrderOpenBuy


//+-----------------------------------------------------------------------------------------------+
void OnTick ()
  {
// Получим значение индикатора
   dMA = iMA ( Symbol (), 0 , iPeriodMA, 0 , MODE_SMA , PRICE_CLOSE , 0 );

// Если нет открытых ордеров, то входим в условие
   if (bCheckOrders() == true )
     {
       // Если появился сигнал на покупку, то откроем ордер на покупку
       if (bSignalBuy() == true )
         vOrderOpenSell();

       // Если появился сигнал на продажу, то откроем ордер на продажу
       if (bSignalSell() == true )
         vOrderOpenBuy();
     }
  }
 
SGarnov :

첫 번째 결과입니다. 고문이 보류 중인 주문 을 할 때 통화 쌍 간에 충돌이 있습니다. 예를 들어 EURUSD에 지연을 던졌습니다. 어드바이저는 알고리즘에 따라 작업했습니다(1.18901의 가격에 거래가 열렸고, 어드바이저는 1.18751에 스탑을 설정하고 1.19051의 테이크를 설정 하고 가격에 매도를 위한 지연을 설정했습니다. 1.18751 ) 모든 것이 계획대로 괜찮습니다.

그러나 가격이 다르고 고문이 보류 중인 주문을 하는 것을 제외하고 모든 것을 올바르게 수행하는 GBPUSD에서 거래를 시작할 때입니다. 보류 중인 판매 1.39393이 작동하고 EA가 작동하기 시작하여 1.39633에서 정지하고 1.39153의 테이크를 설정했지만 EURUSD로 1.39633의 가격으로 보류 중인 구매를 완전히 복제하고 1.18751의 가격 으로 보류 중인 판매를 넣었습니다)

방금 또 다른 문제를 발견했습니다. EURUSD의 미결 거래에서 1.18751에서 스탑이 발생하고 EA가 1.18901에서 스탑을 설정하고 1.18595를 테이크하는 판매 보류 주문이 열렸습니다. EA는 기록에 있는 목표에 트리거된 중지를 추가하지 않았습니다.

이것이 문제입니다.

지연으로 오류를 찾았지만 추가 작업을 수행합니다.

 
MakarFX :

모든 거래의 역전이 필요한 경우 여기에서 교환하십시오.

vOrderOpenSell 및 vOrderOpenBuy


아니요, 반전이 필요하지 않지만 스프레드를 고려하여 다른 터미널로 거래를 잃는 "거울"이 필요합니다. 코드 작성자의 주제처럼.

그러나 테스터는 그러한 기회를 제공하지 않습니다. 이를 위해 테스터의 올빼미가 스프레드가 있는 거래를 "미러링"해야 합니다. 마치 다른 터미널에서 열리는 것처럼 보이지만 이 올빼미의 논리에 따르면 복사기를 통해 반전.

차량을 확인해야 해요

 
Alexey Viktorov :

Makar는 OrderMagicNumber()에 올바르게 주의를 끌었지만 오류를 잘못 이해했습니다. 문서에서 이 함수의 구문을 읽으십시오... 주문 목록에 색인이 있거나 특정 주문에 대한 티켓 이 있어야 하지만 마법은 없습니다. 그리고 OrderTicket()은 여기서 도움이 되지 않습니다. 거기에 넣으려고 하지 마세요.

논리적으로. OrdersHistoryTotal을 대체하여 컴파일 하고 터미널 설정 에서 지난 3일 동안의 기록을 작성했습니다. 나는 테스트 할 것이다.

 
законопослушный гражданин :

아니요, 반전이 필요하지 않지만 스프레드를 고려하여 다른 터미널로 거래를 잃는 "거울"이 필요합니다. 코드 작성자의 주제처럼.

그러나 테스터는 그러한 기회를 제공하지 않습니다. 이를 위해 테스터의 올빼미가 스프레드가 있는 거래를 "미러링"해야 합니다. 마치 다른 터미널에서 열리는 것처럼 보이지만 이 올빼미의 논리에 따르면 복사기를 통해 반전.

차량을 확인해야 해요

시장 진입 주문에 문제가 있는 경우 이를 교체해 보십시오.

 ///////////////
if (cmd==OP_SELL) // Переворачиваем ордера OP_SELL
{
Ret= OrderSend (symbol,OP_BUY,volume, Ask ,slippage,takeprofit-sprd,stoploss-sprd,comment,magic,expiration,arrow_color);
}
if (cmd==OP_BUY) // Переворачиваем ордера OP_BUY
{
Ret= OrderSend (symbol,OP_SELL,volume, Bid ,slippage,takeprofit+sprd,stoploss+sprd,comment,magic,expiration,arrow_color);
}

모든 주문에 문제가 있으면 STOPLEVEL을 확인하십시오.

 
MakarFX :

........................... 그리고 추가로 나는 일한다

구현하기 어렵다는 결론에 도달했습니다. 귀하의 코드는 훨씬 간단하고 명확하며 논리적이지만 ..... 웬일인지 추가되지 않습니다. 중요한 것은 포기하지 않는 것입니다.

 
SGarnov :

구현하기 어렵다는 결론에 도달했습니다. 귀하의 코드는 훨씬 간단하고 명확하며 논리적이지만 ..... 웬일인지 추가되지 않습니다. 중요한 것은 포기하지 않는 것입니다.

나는 소련에 봉사한다!
 
SGarnov :

구현하기 어렵다는 결론에 도달했습니다. 귀하의 코드는 훨씬 간단하고 명확하며 논리적이지만 ..... 웬일인지 추가되지 않습니다. 중요한 것은 포기하지 않는 것입니다.

마카르FX :
나는 소련에 봉사한다!

작업한 정류장 수를 고려해야 할 수도 있습니다. 예를 들어, 고문 은 기록에서 스톱을 찾을 것이고, 그 중 2개가 있는 경우 3개와 4개를 모두 추가해야 하며, 모두 외부 설정 "스톱 로스 수"에 따라 다릅니다.

 
SGarnov :

작업한 정류장 수를 고려해야 할 수도 있습니다. 예를 들어, 고문 은 기록에서 스톱을 찾을 것이고, 그 중 2개가 있는 경우 3개와 4개를 모두 추가해야 하며, 모두 외부 설정 "스톱 로스 수"에 따라 다릅니다.

트리거된 중지 수에 대한 기록이 있으며 "수익이 나지 않는 주문 수"가 설정에 지정된 것보다 많으면 보류 중인 주문이 더 이상 배치되지 않습니다(이미 확인됨).
 

안녕하세요 여러분, 도와주세요!

이런 문제가 있습니다. 나는 mql5에서 vps를 구입했고 모든 것이 잘 작동하고 전문가를 직접 설치하고 8개의 차트를 설정하고 전문가를 설치했습니다. 그리고 모든 것이 VPS로 옮겨졌습니다.

그리고 내 것이 아니었기 때문에 컴퓨터에서 메타트레이더 프로그램을 제거해야 했습니다.

이제 컴퓨터에서 로그인할 때

모든 것이 작동합니다, 전문가. 작동하지만 설정을 조정할 수 없습니다. 내 컴퓨터에서 관리할 수 있도록 Expert Advisor와 차트를 다시 가져오려면 어떻게 해야 합니까?

고맙습니다!