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

 
친구들이 말해! 어드바이저가 각자의 통화 쌍으로 작동하도록 코드로 어떻게 어드바이저를 작성할 수 있습니까 ??? 마술사는 한 쌍의 다른 기호를 표시했지만 작동하지 않습니다.
 
logut :
친구들이 말해! 어드바이저가 각자의 통화 쌍으로 작동하도록 코드로 어떻게 어드바이저를 작성할 수 있습니까 ??? 마술사는 한 쌍의 다른 기호를 표시했지만 작동하지 않습니다.
하나의 심볼에 여러 "상인"이 있는 경우에만 매직이 필요하며 심볼을 확인하는 것으로 충분합니다.
 
안녕하세요. 나는 어드바이저를 썼고 테스터에서 좋은 결과를 보여줍니다. 오류 없이 컴파일됩니다. 유로 달러에 고정.
실제 거래에서는 거래가 열리지 않으며 거래를 여는 조건이 발생하면 다음과 같은 메시지가 표시됩니다.
2015.02.11 14:03:03.656 '1435109': 주문 매수 0.01 EURUSD 시장 개시 sl: 1.12697 tp: 1.13747 실패 [잘못된 S/L 또는 T/P]
내가 이해하기로는 이것은 stop이나 take가 올바르지 않다는 것을 의미합니다. 지정된 스탑 및 테이크가 있는 주문은 수동으로 이루어집니다. Medu 가격 및 중지
가격과 테이크업 거리는 스프레드보다 몇 배 더 큽니다. 모든 stop 및 take 계산이 정규화됩니다. 내가 이해하지 못하는 이유가 무엇인지 알아낼 수 있도록 도와주세요.
프로그램은 다음과 같습니다.
정수 시작()
{
//------------------------------------------------ ------------------------------------------------

if (OrdersTotal()>0)
반품;
double monymax8=높음[ArrayMaximum(높음,3,0)];
if (프로그램이 OrderSend 함수에 도달하기 때문에 이유가 아니기 때문에 조건 자체를 제거했습니다)

{ 더블 stop_sell8=monymax8+포인트;
더블 STOP_S8=NormalizeDouble(stop_sell8,Digits);
이중 이익_sell8=입찰-(stop_sell8-입찰)*4-(매도-입찰);
double PROFIT_S8=NormalizeDouble(profit_sell8,Digits);
double my_lot8=AccountBalance()/100/((stop_sell8-Bid)*MarketInfo(Symbol(),MODE_TICKVALUE))/100000;
이중 LOT8=NormalizeDouble(my_lot8,2);
OrderSend(Symbol(),OP_SELL,LOT8,Bid,2,STOP_S8,PROFIT_S8);
}
//------------------------------------------------ ------------------------------------------------
반품;
}

 
Rogoza :
안녕하세요. 나는 어드바이저를 썼고 테스터에서 좋은 결과를 보여줍니다. 오류 없이 컴파일됩니다. 유로 달러에 고정.
실제 거래에서는 거래가 열리지 않으며 거래를 여는 조건이 발생하면 다음과 같은 메시지가 표시됩니다.
2015.02.11 14:03:03.656 '1435109': 주문 매수 0.01 EURUSD 시장 개시 sl: 1.12697 tp: 1.13747 실패 [잘못된 S/L 또는 T/P]
내가 이해하기로는 이것은 stop이나 take가 올바르지 않다는 것을 의미합니다. 지정된 스톱 및 테이크가 있는 수동 주문이 이루어집니다. Medu 가격 및 중지
가격과 테이크업 거리는 스프레드보다 몇 배 더 큽니다. 모든 stop 및 take 계산이 정규화됩니다. 내가 이해하지 못하는 이유가 무엇인지 알아낼 수 있도록 도와주세요.
프로그램은 다음과 같습니다.
 int start() 
 {
 
//------------------------------------------------------------------------------------------------
if ( OrdersTotal ()> 0 )
   return ;
   
   double monymax8=High[ ArrayMaximum (High, 3 , 0 )];
   
       
         if (само условие я убрал так как не в нём причина, раз программа доходит до функции   OrderSend )
        {   double stop_sell8=monymax8+ Point ;
             double STOP_S8= NormalizeDouble (stop_sell8, Digits );
             double profit_sell8=Bid-(stop_sell8-Bid)* 4 -(Ask-Bid);
             double PROFIT_S8= NormalizeDouble (profit_sell8, Digits );
             double my_lot8=AccountBalance()/ 100 /((stop_sell8-Bid)*MarketInfo( Symbol (),MODE_TICKVALUE))/ 100000 ;
             double LOT8= NormalizeDouble (my_lot8, 2 );
           
             
           OrderSend ( Symbol (),OP_SELL,LOT8,Bid, 2 ,STOP_S8,PROFIT_S8);
            
                   
        }
      
 //------------------------------------------------------------------------------------------------
   return ;
 } 

다음과 같이 코드를 만드십시오. 이를 위한 SRC 버튼이 있습니다.

이러한 유형의 계정에서는 중지가 없는 주문이 먼저 열린 다음 OrderModify()가 열리기 때문에 열리지 않습니다.

 
evillive :
하나의 심볼에 여러 "상인"이 있는 경우에만 매직이 필요하며 심볼을 확인하는 것으로 충분합니다.
그래서 이해했습니다. 이제 Expert Advisor를 다중 통화로 만드는 방법에 대한 질문에 대해 걱정하고 있습니다 ???
 
AlexeyVik :

다음과 같이 코드를 만드십시오. 이를 위한 SRC 버튼이 있습니다.

이러한 유형의 계정에서는 중지가 없는 주문이 먼저 열린 다음 OrderModify()가 열리기 때문에 열리지 않습니다.

정말 감사합니다! 코드를 다시 작성하겠습니다.
 
logut :
그래서 이해했습니다. 이제 Expert Advisor를 다중 통화로 만드는 방법에 대한 질문에 대해 걱정하고 있습니다 ???
코드 베이스를 열고 그곳에서 다중 화폐 교환을 찾아 어떻게 작동하는지 알아내십시오.
 

일반적으로, 나는 무언가를 딱딱하게 무디게 했고 그것을 하는 방법을 알아낼 수 없습니다.

line1, line2, line3 등의 변수가 있습니다. for 루프 연산자 를 통해 각 변수의 값을 계산하고 싶습니다.

라인 변수를 올바르게 열거하는 방법은 무엇입니까? '선' + 'i'로 하려고 했는데, 당연히 넌센스로 판명.

 for ( int i= 1 ;i<= 111111111111 ;i++)
        {
             if ( "line" + "i">0 )counter++;
        }
 
배열 line[]을 만든 다음 루프에서 반복하는 것이 더 나을 것입니다.
 

잘못된 개체를 표시하는 이유는 무엇입니까? 왼쪽 https://docs.mql4.com/ru/constants/objectconstants/arrows 코드 3을 가리키는 삼각형이 있어야 하며 위쪽 Wingdings 코드 241에 대한 화살표가 나타납니다.

오브제

프로그램 코드( ObjectSet(objName, OBJPROP_ARROWCODE , 3 ); )

 void f_ArrowClose(
                   datetime closeTime,
                   int action,           //íàïðàâëåíèå
                   double lots,
                   string symb,
                   double openPrice,
                   double closePrice,
                   double profit)
{
       color c;
       string op= "" ;
       if (action== 1 )
      {
         if (profit> 0 )c=Blue; else if (profit< 0 )c=Red; else c=Yellow;
         op= "cl_BUY" ;
      }
       else if (action==- 1 )
      {
         if (profit> 0 )c=Blue; else if (profit< 0 )c=Red; else c=Yellow;
         op= "cl_SELL" ;
      }
      
       string objName = StringConcatenate ( "#" , closeTime, " " , op, " " , lots, " " , symb, " at " , openPrice, " close at " , closePrice);
       ObjectCreate (objName, OBJ_ARROW , 0 , closeTime, closePrice);
      ObjectSet(objName, OBJPROP_COLOR , c);
      ObjectSet(objName, OBJPROP_ARROWCODE , 3 );
       //ObjectSetText(objName, StringConcatenate("Profit: ", profit));
}