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

 
Anatoliy Markov # :

참여해 주셔서 감사합니다. 작업 설명은 나에게 명확합니다. 구현이 중단되면서 ...

댓글로 시도했습니다. 두 번째 그룹까지 숫자를 올바르게 지정합니다. 세 번째 그룹에서는 첫 번째 그룹이 아직 시장에 나와 있지만 주석에 대해 하나를 반환합니다. 요점은 숫자를 곱하는 것이 아니라 빈 숫자를 채우는 것입니다. 내가 명확하게 설명했기를 바랍니다.)

완전히 명확하지 않지만 여전히 버튼을 사용하여 코드를 붙여넣습니다.


또는 키보드 단축키 ALT+s

 
void OnTick()
{
  //---
    
    for(int a=1; a<10; a++)
     {
       comment="";
       for(int i=0; i<OrdersTotal(); i++)
         {
          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
            {
             if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
               {    
                  if (OrderComment()==IntegerToString(a)) continue; 
                  else
                  {
                   comment=IntegerToString(a);
                   break;                  
                  } 
               }
            } 
         } 
        if(comment!="") break; 
     }
    if (CountOfBuy(magic)<1 && CountOfSell(magic)<1) comment="1";
  //---
}
Да, так более информативно. Т.е. этот незамысловатый модуль должен давать коммент для 
последующего присвоения ордеру. Когда открыта группа с комментом 1, он дает коммент 2 (это правильно). 
Когда открыта 2-я группа, опять дает 1. Не могу понять.
 

모두 좋은 저녁!

이미 설정된 보류 주문 이 있는지 확인하는 함수를 작성했지만 어떤 이유로 함수가 작동하지 않습니다. 오류가 어디에 있습니까? 안부 인사를 전합니다. 블라디미르.

 //+------------------------------------------------------------------+
//| Функция IsMainPendingOrder (установлен отложенный ордер):        |
//| возвращает истину, если в советнике уже установлен отложенный    |
//| ордер, в противном случае возвращает ложь.                       |
//| Применим для функции с типом данных bool, чтобы хранить          |
//| логические значения true (истина) или false (ложь).              |
//+------------------------------------------------------------------+
bool IsMainPendingOrder()
  {
   int orders_total= OrdersTotal (); // количество установленных отложенных ордеров
//--- перебираем все установленные отложенные ордера
   for ( int i=orders_total- 1 ; i>= 0 ; i--)
     {
       ulong   order_ticket= OrderGetTicket (i); // тикет ордера
       /* если отложенного ордера нет, значит и у нашего советника отложенного ордера нет */
       if ( OrderSelect (i)== false )
         return false ; // поэтому возвращаем ложь
     }
   /* если отложенный ордер уже есть и его мэджик совпадает с мэджиком нашего советника */
   if ( OrderGetInteger ( ORDER_MAGIC )==Magic_Number)
       return true ;   // то возвращаем истину
   /* в противном случае, если отложенный ордер уже есть, но его мэджик не совпадает с мэджиком нашего советника */
   else
       return false ; // значит это чья-то чужая позиция, поэтому возвращаем ложь
  }
 
MrBrooklin 설정된 보류 주문 이 있는지 확인하는 함수를 작성했지만 어떤 이유로 함수가 작동하지 않습니다. 오류가 어디에 있습니까? 안부 인사를 전합니다. 블라디미르.

스스로 오류를 발견했습니다!!!

다음은 잘 작동하는 코드입니다. 누군가가 도움이 될 것입니다. 안부 인사를 전합니다. 블라디미르.

 //+------------------------------------------------------------------+
//| Функция IsMainPendingOrder (установлен отложенный ордер):        |
//| возвращает истину, если в советнике не установлен отложенный     |
//| ордер, в противном случае возвращает ложь.                       |
//| Применим для функции тип данных bool, чтобы хранить              |
//| логические значения true (истина) или false (ложь).              |
//+------------------------------------------------------------------+
bool IsMainPendingOrder()
  {
   int orders_total= OrdersTotal (); // количество установленных отложенных ордеров
//--- перебираем все установленные отложенные ордера
   for ( int i=orders_total- 1 ; i>= 0 ; i--)
     {
       ulong   order_ticket= OrderGetTicket (i); // тикет ордера
       /* если отложенного ордера нет, значит и у нашего советника отложенного ордера нет */
       if ( OrderSelect (i)== false )
         return true ; // поэтому возвращаем значение истина
       else // в противном случае
         return false ; // возвращаем значение ложь
     }
   /* если отложенный ордер уже есть и его мэджик совпадает с мэджиком нашего советника */
   if ( OrderGetInteger ( ORDER_MAGIC )==Magic_Number)
       return true ;   // то возвращаем истину
   /* в противном случае, если отложенный ордер уже есть, но его мэджик не совпадает с мэджиком нашего советника */
   else
       return false ; // значит это чужой ордер, поэтому возвращаем значение ложь
 

정리하는 방법이나 지향해야 할 방향을 알려주세요.

여기서 막대를 계산하지 않기 위해 버퍼를 생각해 냈습니다. 각각의 새 틱으로 마지막 막대만 확인됩니다(내가 이해한 대로). 새 막대가 나타나면 해당 막대로만 계산이 시작됩니다.

버퍼 덕분에 히스토리 전체에서 선이 다시 그려지지 않고 마지막 가장자리에 추가 세그먼트가 추가됩니다. 총 8개의 버퍼가 있습니다.

그리고 계산을 100번 해야 하는 경우(예: 선을 100번 그리고 하나의 변수만 변경) 최상의 결과를 그립니다. 그리고 새로운 틱 또는 타이머로 동일한 작업을 수행하되 결과(렌더링)의 기존 "이력"을 사용합니다. 이 정보를 어디에, 어떻게 저장하여 나중에 역사 전체에 걸쳐 새로운 기반으로 이러한 계산을 수행할 필요가 없도록 할 수 있습니까?

또는 더 간단히 말하면 표시기의 버퍼 수를 늘리는 방법은 무엇입니까? 파일에 별도로 쓸 수 있습니까? 얼마나 더 나은지
 
Ivan Butko # :

정리하는 방법이나 지향해야 할 방향을 알려주세요.

여기서 막대를 계산하지 않기 위해 버퍼를 생각해 냈습니다. 각각의 새 틱으로 마지막 막대만 확인됩니다(내가 이해한 대로). 새 막대가 나타나면 해당 막대로만 계산이 시작됩니다.

버퍼 덕분에 히스토리 전체에서 선이 다시 그려지지 않고 마지막 가장자리에 추가 세그먼트가 추가됩니다. 총 8개의 버퍼가 있습니다.

그리고 계산을 100번 해야 하는 경우(예: 선을 100번 그리고 하나의 변수만 변경) 최상의 결과를 그립니다. 그리고 새로운 틱 또는 타이머로 동일한 작업을 수행하되 결과(렌더링)의 기존 "이력"을 사용합니다. 이 정보를 어디에, 어떻게 저장하여 나중에 역사 전체에 걸쳐 새로운 기반으로 이러한 계산을 수행할 필요가 없도록 할 수 있습니까?

또는 더 간단히 말하면 표시기의 버퍼 수를 늘리는 방법은 무엇입니까? 파일에 별도로 쓸 수 있습니까? 얼마나 더 나은지

표시기에는 512개의 버퍼가 있습니다.

 
Artyom Trishkin # :

표시기에는 512개의 버퍼가 있습니다.

우와, 고마워요. 나는 아마 거기를 보지 않았다. 나는 시도 할 것이다

 
MrBrooklin # :

스스로 오류를 발견했습니다!!!

다음은 잘 작동하는 코드입니다. 누군가가 도움이 될 것입니다. 안부 인사를 전합니다. 블라디미르.

아무도 유용하지 않을 것입니다. 코드에 심각한 오류가 있습니다. 그리고 그것들을 고치는 것은 무의미합니다.

당신은 언어의 기초를 배우려고 애쓰지 않았지만 무언가를 쓰려고 노력하고 있습니다.

진지하게 받아들이거나 그만두세요.

 
Koldun Zloy # :

아무도 유용하지 않을 것입니다. 코드에 심각한 오류가 있습니다. 그리고 그것들을 고치는 것은 무의미합니다.

당신은 언어의 기초를 배우기 위해 귀찮게하지 않았지만 무언가를 작성하려고합니다.

심각하게 받아들이거나 그만두세요.

좋은 아침! 예, 당신이 절대적으로 옳습니다. 이 무의미한 사업을 포기해야합니다. 즉, 섹션으로 전환해야합니다.

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

여기에서 도움을 기다리십시오.

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin # :
좋은 아침! 예, 당신이 절대적으로 옳습니다. 이 무의미한 사업을 포기해야합니다. 즉, 섹션으로 전환해야합니다.

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

여기에서 도움을 기다리십시오.

안부 인사를 전합니다. 블라디미르.

맞아, 버려.

당신은 내가 러시아어로 당신에게 쓴 것을 이해조차하지 못했습니다.

프로그래밍에 입문하려는 이유는 무엇입니까?