초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 90

 
WindSW :
닫기를 제외한 모든 옵션이 나열됩니다. 그게 내가 묻는 이유야

당신은 이미 답변을 받았습니다

예델킨 :

"포지션 청산"은 거래 요청 실행의 결과일 뿐이며 채우기 규칙은 동일합니다.

저것들. "개방" 요청을 받고 주문 유형을 변경합니다.

필수 필드를 0으로 채우십시오.

 

Yedelkin :
Для каждого вида торгового запроса предусмотрены обязательные поля. Они должны быть заполнены. "Открытие позиции" или "Закрытие позиции" - это всего лишь результат выполнения конкретного торгового запроса, правила заполнения которого - одни и те же. Т.е. берите свой работающий вариант запроса "на открытие" и меняйте тип ордера. Ненужные обязательные поля заполняйте нулями.

세르게예프 :

당신은 이미 답변을 받았습니다

고맙습니다!

또 다른 질문이 생겼습니다. 아래 요청이 전송되고 포지션이 열렸지만 스탑과 이익이 발생하지 않았습니다. 이미 다른 방식으로 그들을 비틀었지만 아무 것도 도움이되지 않았습니다. 뭐가 문제야, 내가 뭘 잘못하고 있니?

   MqlTick latest_price;       // Будет использоваться для текущих котировок
   if (! SymbolInfoTick ( _Symbol ,latest_price)) return ;         // получить текущее значение котировки в структуру типа MqlTick
   ...
   if (uBuy && opSell== false )    
     {
       if (opBuy) return ;                                                 // при наличии позиции не добавлять к открытой позиции на покупку
      mrequest.action = TRADE_ACTION_DEAL ;                                   // немедленное исполнение
      mrequest.price = NormalizeDouble (latest_price.ask, _Digits );           // последняя цена ask
      mrequest.sl = NormalizeDouble (latest_price.ask - StopLoss* _Point , _Digits ); // Stop Loss
      mrequest.tp = NormalizeDouble (latest_price.ask + TakeProfit* _Point , _Digits ); // Take Profit
      mrequest.symbol = _Symbol ;                                             // символ
      mrequest.volume = WorkLot;                                                 // количество лотов для торговли
      mrequest.magic = EA_Magic;                                             // Magic Number
      mrequest.type = ORDER_TYPE_BUY ;                                       // ордер на покупку
      mrequest.type_filling = ORDER_FILLING_FOK ;                             // тип исполнения ордера - все или ничего
      mrequest.deviation=Slippage;                                               // проскальзывание от текущей цены
      OrderSend (mrequest,mresult);                                           // отсылаем ордер
       if (mresult.retcode== 10009 || mresult.retcode== 10008 )                   //запрос выполнен или ордер успешно помещен
        {
         Alert ( "Ордер Buy успешно помещен, тикет ордера #:" ,mresult.order, "!!" );
        }
       else
        {
         return ;
        }
     }
 

마지막 3개의 ZigZag 값을 추가하는 방법은 무엇입니까?

        double summ= 0 ;//переменная, в которую все суммируется
         int w= 0 ;//счетчик 3 удачных сумирований
         int count_for_buf= 0 ;//Счетчик переходов по буферу ZigZag
         while (w<= 3 )
         {
         summ=summ+ZigzagBuffer[rates_total-count_for_buf];
         count_for_buf++;
         if (ZigzagBuffer[rates_total-count_for_buf]!= 0 )//Увеличиваем счетчик, если используемое значение индикатора не равно нулю
          {
          w++;
          }
         }
그래서 어떤 이유로 멈추거나 다른 일이 발생합니다.
 
WindSW : 아래 요청이 전송되고 포지션이 열렸지만 스탑이나 이익이 발생하지 않습니다. 이미 다른 방식으로 그들을 비틀었지만 아무 것도 도움이되지 않았습니다. 뭐가 문제야, 내가 뭘 잘못하고 있니?

"포지션 개설" 거래 요청 에는 몇 가지 채우기 옵션이 있다는 것을 기억하십니까? 이러한 옵션 중 일부는 sl / tp 설정을 제공하고 다른 옵션은 제공하지 않습니다. 즉, 브로커의 거래 모드는 무엇입니까?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
Yedelkin :

"포지션 개설" 거래 요청 에는 몇 가지 채우기 옵션이 있다는 것을 기억하십니까? 이러한 옵션 중 일부는 sl / tp 설정을 제공하고 나머지는 그렇지 않습니다. 즉, 브로커의 거래 모드는 무엇입니까?

브로커 알파리. 수동 모드에서는 교환 실행에서 새 주문만 배치됩니다. 시장에 진입하는 다른 방법은 없습니다. Exchange Execution 요청이 의미하는 것임을 이해합니다. 덕분에 대충 알았습니다. 컴파일러가 다음 줄에서 맹세하는 이유를 말해 줄 수 있습니까?

if(CopyBuffer(ema,0,0,3,emaVal)<0) 반환; // 지시자 버퍼의 새로운 값을 배열에 복사

그리고

표시기 릴리스(ema);

"형식 변환으로 인한 데이터 손실 가능성" 경고를 씁니다. 어젯밤에 고칠 수 없기 때문에 여기에서 무엇이 잘못되었는지 모르겠습니다.

 
WindSW : 컴파일러가 다음 줄에서 맹세하는 이유를 말해 줄 수 있습니까?

if(CopyBuffer(ema,0,0,3,emaVal)<0) 반환; // 지시자 버퍼의 새로운 값을 배열에 복사

그리고

표시기 릴리스(ema);

"형식 변환으로 인한 데이터 손실 가능성" 경고를 씁니다. 어제 저녁부터 고칠 수 없기 때문에 여기에서 무엇이 잘못되었는지 모르겠습니다.

ema 변수의 유형은 무엇입니까?
 
Yedelkin :
ema 변수의 유형은 무엇입니까?
더블
 
WindSW : 더블
분명한. 표시기 핸들을 저장하기 위한 변수 유형을 확인하고 그에 따라 조정하십시오.
 
Yedelkin :
분명한. 표시기 핸들을 저장하기 위한 변수 유형을 확인하고 그에 따라 조정하십시오.
그리고 습관적으로 4에서와 같이 씁니다. 조언에 다시 한번 감사드립니다!
 
lazarev-dm :

마지막 3개의 ZigZag 값을 추가하는 방법은 무엇입니까?

그래서 어떤 이유로 멈추거나 다른 일이 발생합니다.

내 버전을 제공하겠습니다.

   double    summ= 0 ;   //переменная, в которую все суммируется
   int       w= 0 ;     //счетчик 3 удачных сумирований
   for ( int i= 0 ; i<rates_total; i++)
     {
       if (ZigzagBuffer[rates_total]!= 0 && w< 3 ) //Увеличиваем счетчик, если используемое значение индикатора не равно нулю
        {
         summ+=ZigzagBuffer[i];
         w++;
        }
       if (w> 2 ) break ;
     } 
사유: