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

 
Alexey Viktorov :

문자열 USDUSD = "USDUSD";

적어도 그렇게.

여기있어!!! 그래서 나와 함께))) 지워지고 잊어 버렸어)))

매우 감사합니다!!! 당신의 가정에 평화!

 
Valeriy Yastremskiy :

Expert Advisor, 스크립트, 인디케이터는 적용되지 않지만 현재 창에서 작동합니다. 그리고 다른 창/차트 의 전역 변수는 겹치지 않습니다. 그래서 그것은 작동해야합니다)

문자열USDUSD; // 이것은 텍스트 변수이며 초기에는 비어 있습니다. 동일 ""

(Symbol() == AUDUSD) // 이 행 은 AUDUSD 변수와 아무 관련이 없습니다.

그러나 주문 개시 기준은 다른 상품/창구에 대해 동일하지 않아야 합니다. 그들이 동일하다면 실제로 모든 창에서 열립니다.

고맙습니다!

그리고 나는 여러 창에서 일하는 고문이 미래에 주문을 여는 신호가 나타날 때 이런저런 도구를 구매하라는 신호가 있고 나머지는 그렇지 않다는 것을 이해하도록 논리를 정확하게 수행했습니다. 회전

 
Denis Diakonov :

여기있어!!! 그래서 나와 함께))) 지워지고 잊어 버렸어)))

매우 감사합니다!!! 당신의 가정에 평화!

또는 전역 변수 수준에서 이와 같이

 #define AUDUSD "AUDUSD"
 
Alexey Viktorov :

또는 전역 변수 수준에서 이와 같이

일반적으로 시원함)) 이제 로봇이 신호를 수신하고 다른 쌍에 대해 한 번에 여러 창에서 주문을 엽니다))

다시 한번 감사합니다!!

 
Yerkin Sagandykov :

문제는 내 의견으로는 변수의 값에 있지 않습니다. 내 코드에서 새로운 시간이 시작될 때 다시 계산한다는 것입니다. 그리고 현재 기호에 따라 새로운 막대 가 나타나고 막대 =1의 값이 계산되고 신호 기호에 따라 새로운 막대가 얻어지며 아직 형성되지 않았으며 값이 막대 = 2가 계산됩니다.

문제는 간단하게 해결되었습니다 - 신호 기호로 새 막대의 시작을 추적했습니다.

 if   ( iTime (nameSym, LPeriod, 0 ) == counted_bar || iTime (nameSymSignal, LPeriod, 0 ) == counted_Signalbar) return ; 
 
말해 주세요.
함수 본문에서 여러 스위치 케이스 매개변수를 전달할 수 있습니까? 나는 switch case에 개설할 주문의 종류를 가지고 있고 , 시장 진입점을 결정하는 기능에서 주문을 여는 데 1개의 매개변수만 전달하는 것이 가능했고, 동시에 이미 이해했습니다. 이것은 불가능하므로 순차적으로 구현하는 방법조차 찾지 못했습니다.
 
Denis Diakonov :
말해 주세요.
함수 본문에서 여러 스위치 케이스 매개변수를 전달할 수 있습니까? 나는 switch case에 개설할 주문의 종류를 가지고 있고 , 시장 진입점을 결정하는 기능에서 주문을 여는 데 1개의 매개변수만 전달하는 것이 가능했고, 동시에 이미 이해했습니다. 이것은 불가능하므로 순차적으로 구현하는 방법조차 찾지 못했습니다.

관심 있는 코드 표시

 
Denis Diakonov :
말해 주세요.
함수 본문에서 여러 스위치 케이스 매개변수를 전달할 수 있습니까? 나는 switch case에 개설할 주문의 종류를 가지고 있고 , 시장 진입점을 결정하는 기능에서 주문을 여는 데 1개의 매개변수만 전달하는 것이 가능했고, 동시에 이미 이해했습니다. 이것은 불가능하므로 순차적으로 구현하는 방법조차 찾지 못했습니다.

값의 범위를 의미합니까?

 
Vitaly Muzichenko :

관심 있는 코드 표시

 int OpenOrder()                                             
{
   switch (AUDUSD_Analizing)
   {
       case 0 : Alert ( "Нет условий для открытия ордера. Выход" ); break ;    
       case 1 : // кейс для открытия Buy по AUD/USD
               if (TimeServer() == true )                                     
               {
                   if ( Symbol () == AUDUSD)
                  {
                  RefreshRates();
                  Open_Order = OrderSend ( "AUDUSD" ,OP_BUY,lot,Ask, 0 , 0 , 0 ); 
                   Alert ( "Тикет открытого ордера " , Open_Order, GetLastError ());
       case 2 : // кейс для открытия Sell по AUD/USD
               if (TimeServer() == true )                                     
               {
                   if ( Symbol () == AUDUSD)
                  {
                  RefreshRates();
                  Open_Order = OrderSend ( "AUDUSD" ,OP_SELL,lot,Bid, 0 , 0 , 0 ); 
                   Alert ( "Тикет открытого ордера " , Open_Order, GetLastError ());
//-------------------------------------------------------------------------------------------------------------
// другая функция
//-------------------------------------------------------------------------------------------------------------

int AUDUSD_Analizing()
{    
   if (AUDUSD_Prices_new > AUDUSD_Prices_old)
   {
      s1 = AUDUSD_Prices1;
      s2 = AUDUSD_Prices2;
      s3 = s1 - s2;    
       if (raznica > s5)
      {
         Alert ( "--- ВРЕМЯ ОТКРЫВАТЬ ОРДЕР НА ПОКУПКУ ---" );

и вот тут я могу либо прописать конкретное открытие ордера или несколько их штук(чем и решил заняться так 
как не нашел решения), либо вернуть номер кейса в первую функцию(что сократило бы код). 
Но мне нужно по условиям открывать сразу несколько сделок. К примеру нужно 2 на бай разом открыть, 
а возвращается только одно значение и исполняется один кейс и дальше уже на новый круг все идет, 
а мне нужно сразу несколько кейсов, допустим 5 выполнить, поставить 5 отложек и вот как передать не пойму, 
или как вызвать срабатывание кейсов в последовательности. Если с кейсами можно как-то придумать, то по
факту код влезет в рамку 400-600 строк, а так полагаю все 1000+ выйдет в лучшем случае
(разбитые по 100-200 строк на .mqh, но и из файлов тоже помойка сложится)

 
Alexey Viktorov :

값의 범위를 의미합니까?

예를 들어 사례 1을 먼저 보낸 다음 사례 2 등을 보내지 마십시오.

사례가 개시 주문을 실행합니다.