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

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

올빼미는 알고리즘에 따라 거래를 시작해야 합니다.

중지인 경우 다음 트랜잭션은 마틴과 함께 하는 식으로 지정된 곱셈 횟수까지 계속됩니다(함수 - OrdersClose = ..... ;).

올빼미라면 더. 터미널과 함께 꺼지고 "자동 거래"버튼, 다른 올빼미 있으면 다음 작업 시작이 시작 로트에서 시작되며 마틴게일에 의해 증가된 마지막 로트에서는 시작되지 않습니다.

일정을 '첨부'하는 것도 좋겠지만, 문득 이 생각이 떠올랐다.

예: 월요일 시작 로트에서 10-00시에 켜지고, 특정 결과에 도달한 주간에는 꺼지고, 화요일 아침 10-00시에 다시 켜고 시작 로트에서 다시 시작합니다.

모두.

이 문제를 처리하는 방법?

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

이 문제를 처리하는 방법?

당신은 대답 합니다, 당신은 대답

하지만 당신은 사라지고 다시 같은 질문

 
MakarFX :

당신은 대답 합니다, 당신은 대답

하지만 당신은 사라지고 다시 같은 질문

당신은 내가 전역 변수를 생성할 필요가 있다는 것을 보여주었습니다. 시도했지만 질문이 있었습니다.

나는 아직 이것을 잘하지 못한다. 나는 이미 datetime OpenTime이 있습니다. - datetime 으로 대체해야 합니다.   시작 하거나 추가로?

"그리고 나중에 개설/마감 주문이 없으면 "Start"Lots=Lot; "   - 그것을 어디에 귀속시켜야 하는지가 전혀 분명하지 않습니까?

그런 다음 당신은 올빼미의 논리, 내가 원하는 것의 간략한 설명을 요청했습니다. 나는 설명했다

전원을 끌 때 로트를 자동으로 재설정하는 방법에 대한 질문에 답변을 받지 못했습니다.

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

당신은 내가 전역 변수를 생성할 필요가 있다는 것을 보여주었습니다. 시도했지만 질문이 있었습니다.

나는 아직 이것을 잘하지 못한다. 나는 이미 datetime OpenTime이 있습니다. - datetime 으로 대체해야 합니다.   시작 또는 추가로?

"그리고 나중에 개설/마감 주문이 없으면 "Start"Lots=Lot; "   - 어디에 무엇을 참조해야 하는지 명확하지 않습니까?

그런 다음 당신은 올빼미의 논리, 내가 원하는 것의 간략한 설명을 요청했습니다. 나는 설명했다

로트를 껐을 때 자동으로 재설정하는 방법에 대한 질문에 답변을 받지 못했습니다.

상담원의 논리를 설명하라고 했더니 발생한 문제가 아니라 일반적인 행동을

예를 들어:

신호가 있으면 주문을 엽니다.

주문이 이익으로 마감되면 새로운 신호를 기다리고 있습니다.

주문이 손실로 마감된 경우 로트를 늘리고 새 신호를 기다립니다.


난 당신의 전략이 필요하지 않습니다, 나는 고문이 무엇을해야하는지 이해해야합니다

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

당신은 내가 전역 변수를 생성할 필요가 있다는 것을 보여주었습니다. 시도했지만 질문이 있었습니다.

나는 아직 이것을 잘하지 못한다. 나는 이미 datetime OpenTime이 있습니다. - datetime 으로 대체해야 합니다.   시작 하거나 추가로?

"그리고 나중에 개설/마감 주문이 없으면 "Start"Lots=Lot; "   - 어디에 무엇을 참조해야 하는지 명확하지 않습니까?

그런 다음 당신은 올빼미의 논리, 내가 원하는 것의 간략한 설명을 요청했습니다. 나는 설명했다

로트를 껐을 때 자동으로 재설정하는 방법에 대한 질문에 답변을 받지 못했습니다.

시작하려면 다음과 같은 기능이 있습니다.

 //+----------------------------------------------------------------------------+
//|  Размер лота/профита и время последней закрытой позиции                    |
//|  1 - возвращает размер лота                                                |
//|  2 - возвращает размер профита с учетом комиссии и свопа                   |
//|  3 - возвращает время закрытия ордера                                      |
//+----------------------------------------------------------------------------+
double GetInfoLastPos( int a= 1 )
  {
   datetime t= 0 ;
   double result= 0 ,l= 0 ,p= 0 ;
   int i=OrdersHistoryTotal();

   for ( int pos= 0 ; pos<i; pos++)
     {
       if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if ((OrderSymbol()== _Symbol )&&(OrderMagicNumber()==Magic))
           {
             if (OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if (t<OrderCloseTime()) {t=OrderCloseTime(); l=OrderLots(); p=OrderProfit()+OrderCommission()+OrderSwap();}
              }
           }
        }
     }
   if (a== 1 ) {result=l;} else
   if (a== 2 ) {result=p;} else
   if (a== 3 ) {result=( double )t;}
   else      {result= 0 ;}
   return (result);
  }

주문이 손실된 경우

   if (GetInfoLastPos( 2 )< 0 )
     {Lots= NormalizeDouble (GetInfoLastPos( 1 )*K_Martin,DigitsLot);}
   else 
     {Lots= NormalizeDouble (Lot,DigitsLot);}
 

에 대한

 datetime Start;

int OnInit ()
{
   Start= TimeCurrent ();
.....................
}
void OnTick ()
{
   if (!IsTradeAllowed()) 
   {
      DrawLABEL( "Торговля" , 0 , 0 , 0 ,Red, "Торговля запрещена" );
      Start= TimeCurrent ();
       return ;
   } 
.....................
}

마지막으로 마감된 주문의 시간이 Start(어드바이저의 시작 시간)보다 작은 경우

   if (GetInfoLastPos( 3 )<Start)
     {Lots= NormalizeDouble (Lot,DigitsLot);}
 
MakarFX :

상담원의 논리를 설명하라고 했더니 발생한 문제가 아니라 일반적인 행동을

예를 들어:

신호가 있으면 주문을 엽니다.

주문이 이익으로 마감되면 새로운 신호를 기다리고 있습니다.

주문이 손실로 마감된 경우 로트를 늘리고 새 신호를 기다립니다.


난 당신의 전략이 필요하지 않습니다, 나는 고문이 무엇을해야하는지 이해해야합니다

신호가 있는 경우 시작 로트로 주문을 엽니다.

주문이 이익으로 마감되면 새로운 신호를 기다리고 있습니다.

주문이 손실로 마감된 경우 로트를 늘리고 새 신호를 기다립니다.

이익이 хххх( 예금 통화 )에 도달하면 고문은 모든 거래를 닫고 로트를 시작 거래로 재설정합니다.

손실이 uuuu(예금 통화로)에 도달하면 어드바이저는 모든 거래를 닫고 로트를 시작 거래로 재설정합니다.

어드바이저가 꺼졌다가 다시 켜진 경우: - 신호가 있으면 시작 로트로 주문을 엽니다.

그래서?

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

신호가 있는 경우 시작 로트로 주문을 엽니다.

주문이 이익으로 마감되면 새로운 신호를 기다리고 있습니다.

주문이 손실로 마감된 경우 로트를 늘리고 새 신호를 기다립니다.

이익이 хххх( 예금 통화 )에 도달하면 고문은 모든 거래를 닫고 로트를 시작 거래로 재설정합니다.

손실이 uuuu(예금 통화로)에 도달하면 어드바이저는 모든 거래를 닫고 로트를 시작 거래로 재설정합니다.

어드바이저가 꺼졌다가 다시 켜진 경우: - 신호가 있으면 시작 로트로 주문을 엽니다.

그래서?

네, 그렇습니다.

그리고 어드바이저를 껐다가 다시 켰는데 오픈 오더가 있다면?

 
MakarFX :

네, 그렇습니다.

그리고 어드바이저를 껐다가 다시 켰는데 오픈 오더가 있다면?

올빼미가 꺼지면 끄기 전에 손익에 관계없이 모든 주문을 닫습니다.

따라서 다시 켜면 "클린 필드"가 시작 로트입니다.

열라는 신호를 제공하는 표시기는 예에서 RSI이지만 다른 표시기에서 세 가지 다른 올빼미를 테스트할 것입니다.

세 가지 모두 마틴을 추가하는 측면에서 나에 의해 마무리되었습니다. 따라서 위에서 논의한 논리에 따른 예제 코드가 있는 경우 무료 오픈 소스이므로 다른 조언자의 코드를 직접 다시 작업할 수 있기를 바랍니다.

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

올빼미가 꺼지면 끄기 전에 이익이나 손실에 관계없이 올빼미가 연 모든 주문을 닫습니다.

따라서 다시 켜면 "클린 필드"가 시작 로트입니다.

열라는 신호를 제공하는 표시기는 예에서 RSI이지만 다른 표시기에서 세 가지 다른 올빼미를 테스트할 것입니다.

세 가지 모두 마틴을 추가하는 측면에서 나에 의해 마무리되었습니다. 따라서 위에서 논의한 논리에 따른 예제 코드가 있는 경우 무료 오픈 소스이므로 다른 조언자의 코드를 직접 다시 작업할 수 있기를 바랍니다.

그리고 올빼미는 시간 프레임, 통신 문제 및 또 다른 100500 및 한 가지 이유를 변경할 때 꺼집니다.

어드바이저를 다시 로드하는 것은 자연스러운 본질입니다.