포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 149

 
ALXIMIKS :

질문이 바보같긴 한데 어디선가 답을 못 본 것 같거나 그냥 삐딱하게 쳐다본 것 같아요.

함수에서, 그리고 아마도 다른 곳에서 데이터 유형 뒤에 & 기호를 만났고, 내가 틀리지 않았다면 && 를 한 번 보았습니다.

func( int& mm_mode, string symbol, int magic, bool& stop) {

무엇을 위한 것입니까? 그것은 무엇을주고 무엇을합니까? 자세한 내용은 링크를 참조하세요 ;)

이것은 참조 로 매개변수를 전달하고 있습니다.
호즈 :


그리고 주제에 더 가깝다면? 예를 들어 연결이 끊기거나 기타 유사한 상황에서 INIT가 실패할 수 있다는 것은 오랫동안 논의되어 왔습니다. 왜냐하면 예상치 못한 상황의 경우 나중에 데이터를 다시 시작하지 않으며 한 번만 실행됩니다! 따라서 이것은 완전히 올바른 옵션이 아닙니다.
아무도 당신의 조건에 따라 필요한 경우 init() 호출을 귀찮게하지 않습니다.
 
gInitTrue = false;   // В глобальных
-------------------------------------
// Сама функция нашего ИНИТА
bool myInit()
{
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные.
   return(gInitTrue =true);
}
-------------------------------------
//Вызов из старта так:
if (gInitTrue = false)
   myInit();
 

hoz :

gInitTrue = false ;   // В глобальных
-------------------------------------
// Сама функция нашего ИНИТА
bool myInit()
{
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные.
   return (gInitTrue = true );
}
-------------------------------------
//Вызов из старта так:
if (gInitTrue = false )
   myInit();

이것은 다음과 같습니다.

gInitTrue = false ;   // В глобальных
-------------------------------------

bool init()
{
   if
   {
   // Инициализируем..
   // неоходимые..
   // нам..
   // переменные..
   }
   return (gInitTrue = true );
}
-------------------------------------
void start()
 { //Вызов из старта так:
   if (gInitTrue = false ) init();
 }
 
001 :

나는 최소한의 비용으로 논리를 구현한다는 것을 이해하지 못할 것입니다.

if(...) 중지 주문을 설정합니다.

if(주문 수명>시간) 주문을 취소하고 if(..) 새 주문을 하십시오.

어려움은 이미 여러 직책이 열려 있을 수 있으며 이들 모두를 동반하는 방법은 무엇입니까? 가장 쉬운 방법은 무엇입니까?

고맙습니다!

 int MagicNumber= 555 ;
//---
if ( OrdersTotal ()> 0 )
{   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
      {   //--- фильтр по символу
         if (OrderSymbol()!= Symbol ()) continue ;
         //--- фильтр по магик номеру (если такая проверка предусмотрена)
         if (OrderMagicNumber()!=MagicNumber) continue ;
         //--- срабатывает условие удаления отложенного ордера
         if (OrderOpenPrice()>vremya)
         {  
             if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)
            {  
               if (OrderDelete(OrderTicket())== true )
               {   Sleep ( 5 * 1000 ); //после удачного удаления усыпляем советник на 5 секунд
                   if ( /*установить стоповый ордер*/ )
                  {   OrderSend (...)
                  }
               }
            }
             else return ( 0 );
         }
}  }  }
 
Zhunko :
이것은 참조 로 매개변수를 전달하고 있습니다.
아무도 당신의 조건에 따라 필요한 경우 init() 호출을 귀찮게하지 않습니다.


그런 다음 다시 이 순간의 통제 문제를 해결해야 합니다. 결국 '어디서 필요한지'를 알아내려면 .. 그리고 플래그를 통해서 알 수 있죠. 예를 들어 플래그가 전역에 있음이 밝혀졌습니다.

gInitTrue = false ;

함수의 맨 끝에 있는 init()에서 값을 할당합니다.

gInitTrue = true ;

그리고 함수의 맨 처음에 시작을 제어합니다.

 if (gInitTrue != true )
    init();
제가 이해한게 맞나요? 아니면 고려해야 할 다른 것이 있습니까?
 
hoz :


그리고 주제에 더 가깝다면? 예를 들어 연결이 끊기거나 기타 유사한 상황에서 INIT가 실패할 수 있다는 것은 오랫동안 논의되어 왔습니다. 왜냐하면 예상치 못한 상황의 경우 나중에 데이터를 다시 시작하지 않으며 한 번만 실행됩니다! 따라서 이것은 완전히 올바른 옵션이 아닙니다.
init()가 작동하는 데 시간 제한이 없습니다. 이론적으로 계산에는 몇 초/분이 소요될 수 있습니다. 여기서 연결을 끊는 것은 의미가 없습니다. 저것들. 차트에서 올빼미 시작 -> 틱이 옴 -> init()에서 계산 시작 새로운 틱을 위해.
 
코드를 올바르게 작성하여 지정된 손절매 또는 이익 실현이 최소 스탑보다 작은 경우 동일하게 만들고 스탑을 최소 스탑으로 사용하도록 합니다. ?
 
webip :
코드를 올바르게 작성하여 지정된 손절매 또는 이익실현이 최소 스탑보다 작은 경우 동일하게 만들고 스탑을 최소 스탑으로 사용하도록 합니다. ?
MathMax() .
 
약간의 코드를 알려주세요. 여기 에서 파일을 열었습니다 .... 어떤 기능의 도움으로 레코드를 녹음하고 저장 한 다음 닫을 수 있습니까 ...
 
Zolotai :
약간의 코드를 알려주세요. 여기에서 파일을 열었습니다 .... 어떤 기능의 도움으로 레코드를 녹음하고 저장 한 다음 닫을 수 있습니까 ...

https://docs.mql4.com/ru/files