Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 72

 

Lester:
Este é um modelo com funções incorporadas para abertura, fecho e modificação.
A abertura e encerramento são escritos por Nikolay Kositsin.

Alterei-os facilmente e acrescentei modificações.

Penso que é claro como chamá-los, por isso, para sua conveniência.

Desculpe por isso - confundiuo ficheiro.

Документация по MQL5: Файловые операции / FileMove
Документация по MQL5: Файловые операции / FileMove
  • www.mql5.com
Файловые операции / FileMove - Документация по MQL5
Arquivos anexados:
schablon_1.mq5  13 kb
 
papaklass:

Tente desta forma:

Infelizmente, as ordens não fecham de todo. Acho que devo pensar um pouco sobre isso)
 
mario065:

Lester:
Este modelo tem funções incorporadas para abertura, fecho e modificação.
A abertura e encerramento são escritos por Nikolay Kositsin.

Alterei-os facilmente e acrescentei modificações.

Penso que é claro como os desafiar, por isso, para sua conveniência.

Como é que abro tais ficheiros com um editor?
 
Lester:
Como é que se abrem tais ficheiros com um editor?

Não é possível abri-los. ))

Tente ler alguns artigos. Há muito por onde escolher, desde o mais pequeno ao mais maduro. ))

 
Lester:
Infelizmente, as ordens não fecham de todo. Acho que devo pensar um pouco sobre isso)

Alterou o ficheiro, desculpem por isso.

Confundi o ficheiro, desculpem.

 
papaklass:

Whoa. O que tem isto a ver com os mandados? Temos estado sempre a falar de uma posição. Uma posição e ordens pendentes são coisas diferentes. Devem ser fechados de forma diferente!

As ordens pendentes não são fechadas, mas apagadas. As posições são fechadas através da abertura de uma ordem de mercado de volume igual e em direcção oposta à posição aberta.

O código que citou não foi concebido para apagar ordens pendentes.

Pode utilizar esta função para eliminar encomendas:


Já está. Nada sobre encomendas - apenas posições.

Eu prescrevi PositionSelect à noite - parece ter-me apanhado o fôlego. Envia (fecha) posições de vez em quando, mas penso que as condições já estão aqui envolvidas.

Não compreendo outra coisa. Não forma paragens e perdas de lucro, cujos valores são prescritos nos parâmetros de entrada. Se eu prescrevo estes valores no envio, o mesmo acontece - ou seja, nada.

input int StopLoss=60;      // Stop Loss
input int TakeProfit=170;   // Take Profit
int OnInit()
 ...
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
...
 mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(Ask,_Digits);    // последняя цена ask
         mrequest.sl = StopLoss; // Stop Loss
         mrequest.tp = TakeProfit; // Take Profit
         mrequest.symbol = _Symbol;                                            // символ
         mrequest.volume = Lot;                                                // количество лотов для торговли
         mrequest.magic = EA_Magic;                                            // Magic Number
         mrequest.type = ORDER_TYPE_BUY;                                       // ордер на покупку
         mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего
         mrequest.deviation=10;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
         OrderSend(mrequest,mresult);
         // анализируем код возврата торгового сервера
         if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
           {
            Alert("Ордер Buy успешно помещен, тикет ордера #:",mresult.order,"!!");
           }
         else
           {
            Alert("Запрос на установку ордера Buy не выполнен - код ошибки:",GetLastError());
            return;

 

Olá. Pode dizer-me o que devo fazer no MT4 depois de subscrever os sinais, para que a sincronização possa ter lugar? Encontrei nas instruções o que fazer com o MT5, não encontrei instruções para o MT4. Subscrevi o sinal do MT4.

Inscrevi-me para o sinal do MT4. Obrigado.

Торговые сигналы
Торговые сигналы
  • www.mql5.com
Торговые Сигналы для MetaTrader: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
 
Lester:

Compreendido. Sem menção de encomendas - apenas posições.

Eu prescrevi PositionSelect à noite - parece ter-me apanhado o fôlego. Envia (fecha) posições de vez em quando, mas penso que as condições já estão aqui envolvidas.

Não compreendo outra coisa. Não forma Stop e perdas de lucro, cujos valores são prescritos nos parâmetros de entrada. Se eu prescrevo estes valores no envio, o mesmo acontece - ou seja, nada.

As paragens e os lucros não são especificados correctamente.
Здес указали целое число
input int StopLoss=60;      // Stop Loss
input int TakeProfit=170;   // Take Profit

...
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
...

mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(Ask,_Digits);    // последняя цена ask
         mrequest.sl = NormalizeDouble(Ask - StopLoss*_Points,_Digits); // Stop Loss
         mrequest.tp = NormalizeDouble(Ask + TakeProfit*_Points,_Digits);  // Take Profit

На места для стоп и профит нужна цена!
 
papaklass:

A razão pela qual as paragens não são definidas quando uma posição é aberta pode depender do modo de negociação. Há três modos: Request Execution, Instant Execution e Market Execution.

Se o seu corretor utiliza o modo Market Execution, precisa de abrir uma posição primeiro e depois modificá-la (definir paragens) no tick seguinte. Ao mesmo tempo, ou seja, numa ordem, com este modo de negociação não é possível abrir uma posição com paragens.

Em geral, tratar da estrutura de um pedido comercial:Referência MQL5 / Constantes padrão, enumerações e estruturas / Estruturas de dados / Estrutura de um pedido comercial. Penso que isto o ajudará no estudo mais aprofundado da língua.

De facto, há a Execução do Mercado em Alpari. Existe uma estrutura de modificação de encomendas em si? Como não há nenhuma modificação no fórum desde que haja uma ordem de venda ou compra em aberto.

Se não me engano, o "peixe" da modificação parece-se com isto.

if(PositionSelect(_Symbol)==true) // есть открытая позиция
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
        { ModifyPosition(стоплосс на покупку)
        }
      else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
        {
         { ModifyPosition(стоплосс на продажу)
        }
return


 
Lester:
De facto, na Execução do Mercado Alpari. Existe uma estrutura de modificação de encomendas em si? Como não há modificação no fórum desde que haja uma ordem de Venda ou Compra em aberto.

Se não me engano, o 'peixe' da modificação parece-se com isto.

Utilizar a solução pronta da biblioteca padrão(classe CTrade- método PositionModify). É uma boa solução para um começo. A qualquer momento pode fazer a sua própria aula semelhante e fazer as alterações necessárias.
Razão: