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

 
모두가 알고. MT4에서. 전략 테스터 가 있습니다. 최적화를 통해 매개변수 열거를 푸시할 수 있습니다.

질문은 이것입니다.

이 최적화, 매개변수 열거를 Expert Advisor에 넣을 수 있습니까? 고문 자신을 말합니다. 때때로 지정된 기간 동안 매개 변수를 최적화하고 수익성이 있고 작업한 매개 변수를 선택했습니까? 7일마다 7일 동안 최적화가 있다고 가정해 보겠습니다. 그리고 매개변수는 수익성에 따라 선택됩니다. 그리고 그들에게 올빼미는 이미 7 일 더 일하고 있습니까?

나는 이것을 이해하는 사람의 대답을 듣고 싶습니다. 작업량을 말해보자. 작업의 심각도입니다. 등. 그게 다 뭐야?

 
Aleksey Radzisheuski :
모두가 알고. MT4에서. 전략 테스터 가 있습니다. 최적화를 통해 매개변수 열거를 푸시할 수 있습니다.
질문은 이것입니다.
이 최적화, 매개변수 열거를 Expert Advisor에 넣을 수 있습니까? 고문 자신을 말합니다. 때때로 지정된 기간 동안 매개 변수를 최적화하고 수익성이 있고 작업한 매개 변수를 선택했습니까? 7일마다 7일 동안 최적화가 있다고 가정해 보겠습니다. 그리고 매개변수는 수익성에 따라 선택됩니다. 그리고 그들에게 올빼미는 이미 7 일 더 일하고 있습니까?

나는 이것을 이해하는 사람의 대답을 듣고 싶습니다. 작업량을 말해보자. 작업의 심각도입니다. 등. 그게 다 뭐야?

여기 기사가 있습니다 https://www.mql5.com/ru/articles/1467 ...

Автоматическая оптимизация торгового робота в процессе реальной торговли
Автоматическая оптимизация торгового робота в процессе реальной торговли
  • 2007.04.16
  • Igor Malcev
  • www.mql5.com
В статье описана и представлена библиотека функций, позволяющая проводить оптимизацию входных параметров советника, запуская оптимизацию непосредственно из советника.
 
Alekseu Fedotov :


추세선이 있습니까?

그리고 그것은 시각적으로 0 막대를 (아래) 통과합니다. 아니요, 속성에 눈금을 표시하십시오. 빔.


선은 추세선입니다. 속성을 빔으로 변경했습니다. 도움이되지 않았습니다. 이상적으로는 제로 바(상단, 하단)의 위치에 관계없이 가격을 표시해야 합니다.

이 코드도 작동하지 않습니다.

정수 시작() {

이중 pr=ObjectGetValueByShift("줄", 0);

‌ 경우(입찰가==pr){

경고(pr);}

반환(0);‌}

 
Valerius :

좋은 오후에요 여러분!

‌질문, 인스타그램에서 주문을 보내려고 하면 정류장이 잘못되었다고 나옵니다.

라인 자체에서:

OrderSend(Symbol(),OP_BUYSTOP,Lots,HiP,3,0,0,NULL,111,0,clrBlue);

손절매에서는 0입니다. 손절매에 숫자를 넣으면 모든 것이 정상입니다.

A‌ 손절매는 필요하지 않습니다. 어떻게 될 것인가?

이 문제는 StopLoss가 아니라 지연의 시작 가격입니다. 보류 주문 가격이 잘못된 경우 오류 130이 발생합니다.
 
Kot :


선은 추세선입니다. 속성을 빔으로 변경했습니다. 도움이되지 않았습니다. 이상적으로는 제로 바(상단, 하단)의 위치에 관계없이 가격을 표시해야 합니다.

이 코드도 작동하지 않습니다.

정수 시작() {

이중 pr=ObjectGetValueByShift("줄", 0);

‌ 경우(입찰가==pr){

경고(pr);}

반환(0);‌}


줄 이름의 철자가 정확합니까?

이 스크립트를 시도하고 로그에 기록된 내용을 보여줍니다.

 void OnStart ()
  {
     double pr;
     int obj_total= ObjectsTotal (); 
     string name;
     int i; 
     
   for (i= 0 ;i<obj_total;i++) 
     { 
      name= ObjectName (i); 
       if ( ObjectType (name)!= OBJ_TREND ) continue ; 
       PrintFormat ( "Объект %d:     Имя объекта - %s" ,i,name); 
      pr= ObjectGetValueByShift (name, 0 );
       PrintFormat ( "Объект %d:     Цена - %.5f" ,i,pr);
      
     } 
  }

 

그만한 가치가 있습니다. iCustom Expert Advisor는 더 높은 기간의 지표에서 데이터를 호출합니다. 지지선과 저항선이라고 합시다.

세 자리 x1 x2 x3이 있다고 가정해 보겠습니다. 조언자에서 바로 이 세 숫자에 선을 그리는 코드를 작성할 수 있도록 도와주세요.

나는 ObjCreate를 시도했다( 각 틱 에 대한 포인트로 차트에서 실행하고 싶었지만 아무 일도 일어나지 않았다)

나는 3개의 개별 라인을 지정합니다. mql4 튜토리얼을 참조하지 마십시오. 작업 코드를 공유하기만 하면 됩니다.

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
Artyom Trishkin :

이 스레드에서 저는 새로운 MQL4에서 프로그래밍을 정말로 이해하고 배우고 싶어하고 MQL5로 쉽게 전환하고자 하는 사람들을 돕기 시작하고 싶습니다. 언어는 매우 유사합니다.

여기에서 작업, 이를 해결하기 위한 알고리즘, 그리고 어떤 방식으로든 MT용 프로그래밍과 관련된 모든 질문에 대해 논의할 수 있습니다.

포럼의 다른 경험 많은 회원이 문제 해결에 참여하고 스레드가 모든 사람의 관심을 끌 수 있기를 바랍니다.


그만한 가치가 있습니다. iCustom Expert Advisor는 더 높은 기간의 지표에서 데이터를 호출합니다. 지지선과 저항선이라고 합시다.

세 자리 x1 x2 x3이 있다고 가정해 보겠습니다. 조언자에서 바로 이 세 숫자에 선을 그리는 코드를 작성할 수 있도록 도와주세요.

나는 ObjCreate를 시도했다( 각 틱 에 대한 포인트로 차트에서 실행하고 싶었지만 아무 일도 일어나지 않았다)

나는 3개의 개별 라인을 지정합니다. mql4 튜토리얼을 참조하지 마십시오. 작업 코드를 공유하기만 하면 됩니다.

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
BoBoforex :

그만한 가치가 있습니다. iCustom Expert Advisor는 더 높은 기간의 지표에서 데이터를 호출합니다. 지지선과 저항선이라고 합시다.

세 자리 x1 x2 x3이 있다고 가정해 보겠습니다. 조언자에서 바로 이 세 숫자에 선을 그리는 코드를 작성할 수 있도록 도와주세요.

나는 ObjCreate를 시도했다( 각 틱 에 대한 포인트로 차트에서 실행하고 싶었지만 아무 일도 일어나지 않았다)

나는 3개의 개별 라인을 지정합니다. mql4 튜토리얼을 참조하지 마십시오. 작업 코드를 공유하기만 하면 됩니다.


기능

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (1  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine( color cl, string nm= "" , double p1= 0 , int st= 0 , int wd= 1 ) {
   if (nm== "" ) nm= DoubleToStr ( Time [ 0 ], 0 );
   if (p1<= 0 ) p1= Bid ;
   if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_HLINE , 0 , 0 , 0 );
   ObjectSet (nm, OBJPROP_PRICE1 , p1);
   ObjectSet (nm, OBJPROP_COLOR , cl);
   ObjectSet (nm, OBJPROP_STYLE , st);
   ObjectSet (nm, OBJPROP_WIDTH , wd);
}

void OnTick() 함수 외부에 배치

그리고 이것은 void OnTick() 내부에 있습니다.

  SetHLine( clrRed , "x1" ,x1); 
  SetHLine( clrRed , "x2" ,x2);
  SetHLine( clrRed , "x3" ,x3);  


 

도움을 요청합니다. i>0 값에서 VesMass 배열을 계산할 때 0이 나오는 이유를 이해할 수 없습니까?

   int NumberTotal= 3 ;
   int VesTotal=NumberTotal; //всего веслов в массиве
   double VesMass[]; //массив с весами
   ArrayResize (VesMass,VesTotal);



   for ( int i= 0 ;i<VesTotal;i++)
     {
       if (i== 0 )
        {
         VesMass[i]= 1 ;
         Print ( "VesMass " ,i, "=" ,VesMass[i]);
        }
       if (i> 0 )
        {
         VesMass[i]=VesMass[i- 1 ]*( 4 / 5 );
         Print ( "VesMass " ,i- 1 , "=" ,VesMass[i- 1 ]);
         Print ( "VesMass " ,i, "=" ,VesMass[i]);
        }
     }

 
Alexey Viktorov :
이 문제는 StopLoss가 아니라 지연의 시작 가격입니다. 보류 주문 가격이 잘못된 경우 오류 130이 발생합니다.


가격에서 더블 스프레드를 지연시켜 보았습니다. 그래야만 오류가 사라집니다. 이게 맞는건지 이해가 안됨?

예를 들어 Bida에서 BUYSTOP 주문이 60핍되었습니다. 이익을 취하는 것은 또한 스프레드에 의해 더 적은 것을 허용하지 않습니다.

왜 그런지 이해가 안됩니다. 실생활에서는 작동하지 않고 데모에서는 작동합니다.