Você leu a documentação?
Parameters
bilhete
[em] Índice de pedidos ou bilhete de pedido, dependendo do segundo parâmetro.
selecione
[em] Seleção de bandeiras. Pode ser qualquer um dos seguintes valores:
SELECT_BY_POS - índice no pool de ordens,
SELECT_BY_TICKET - índice é bilhete de pedido.
pool=MODE_TRADES
[em] Índice de ordem opcional. Utilizado quando o parâmetro selecionado é SELECT_BY_POS. Pode ser qualquer um dos seguintes valores:
MODE_TRADES (default)- ordem selecionada do pool de negociação (ordens abertas e pendentes),
MODE_HISTÓRIA - ordem selecionada do pool histórico (ordem fechada e cancelada).
bool OrderSelect( int index, // index or order ticket int select, // flag int pool=MODE_TRADES // mode );
boopa26 quer fechar ordens abertas, então boopa escolhe MODE_TRADES como terceiro parâmetro
boopa26 do SELECT_BY_POS ou SELECT_BY_TICKET ? boopa26 não sabe
SELECT_BY_POS //index inside order pool, SELECT_BY_TICKET //index is order ticket.
https://docs.mql4.com/trading/orderclose
como o boopa26 funciona sem ciclos ou enquanto ciclos, mas com condições de fechar pedidos abertos com função de seleção de pedidos?
o fechamento do pedido de documentação requer que o ticket de pedido seja encontrado, mas boopa26 seleciona para encontrar a posição de pedido e não o ticket
bool OrderClose( int ticket, // ticket double lots, // volume double price, // close price int slippage, // slippage color arrow_color // color );
1. selecione a ordem
2. Ordem de fechamento
não sabe como
//+------------------------------------------------------------------+ //| Moving Average.mq4 | //| Copyright 2005-2014, MetaQuotes Software Corp. | //| http://www.mql4.com | //+------------------------------------------------------------------+ #property copyright "2005-2014, MetaQuotes Software Corp." #property link "http://www.mql4.com" #property description "Moving Average sample expert advisor" #define MAGICMA 20131111 //--- Inputs input double Lots =0.1; input double MaximumRisk =0.02; input double DecreaseFactor=3; input int MovingPeriod =12; input int MovingShift =6; //+------------------------------------------------------------------+ //| Calculate open positions | //+------------------------------------------------------------------+ int CalculateCurrentOrders(string symbol) { int buys=0,sells=0; //--- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA) { if(OrderType()==OP_BUY) buys++; if(OrderType()==OP_SELL) sells++; } } //--- return orders volume if(buys>0) return(buys); else return(-sells); } //+------------------------------------------------------------------+ //| Calculate optimal lot size | //+------------------------------------------------------------------+ double LotsOptimized() { double lot=Lots; int orders=HistoryTotal(); // history orders total int losses=0; // number of losses orders without a break //--- select lot size lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1); //--- calcuulate number of losses orders without a break if(DecreaseFactor>0) { for(int i=orders-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; } if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue; //--- if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1); } //--- return lot size if(lot<0.1) lot=0.1; return(lot); } //+------------------------------------------------------------------+ //| Check for open order conditions | //+------------------------------------------------------------------+ void CheckForOpen() { double ma; int res; //--- go trading only for first tiks of new bar if(Volume[0]>1) return; //--- get Moving Average ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0); //--- sell conditions if(Open[1]>ma && Close[1]<ma) { res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red); return; } //--- buy conditions if(Open[1]<ma && Close[1]>ma) { res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue); return; } //--- } //+------------------------------------------------------------------+ //| Check for close order conditions | //+------------------------------------------------------------------+ void CheckForClose() { double ma; //--- go trading only for first tiks of new bar if(Volume[0]>1) return; //--- get Moving Average ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0); //--- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue; //--- check order type if(OrderType()==OP_BUY) { if(Open[1]>ma && Close[1]<ma) { if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White)) Print("OrderClose error ",GetLastError()); } break; } if(OrderType()==OP_SELL) { if(Open[1]<ma && Close[1]>ma) { if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White)) Print("OrderClose error ",GetLastError()); } break; } } //--- } //+------------------------------------------------------------------+ //| OnTick function | //+------------------------------------------------------------------+ void OnTick() { //--- check for history and trading if(Bars<100 || IsTradeAllowed()==false) return; //--- calculate open orders by current symbol if(CalculateCurrentOrders(Symbol())==0) CheckForOpen(); else CheckForClose(); //--- } //+------------------------------------------------------------------+o conselheiro especialista emmédia móvel usa para o ciclo para fechar pedidos abertos
Eu acho que "boopa26" precisa fazer o seguinte:
- Primeiro, o "boopa26" precisa primeiro aprender o básico da codificação (como em C).
- Depois o "boopa26" precisa ler e seguir o Livro/Tutorial (mesmo que seja antigo e desatualizado).
- Ao mesmo tempo, "boopa26" precisa ler toda a documentação com atenção especial para as atualizações MQL4 que não são mencionadas no Livro/Tutorial.
- Então o "boopa26" precisa estudar vários exemplos de código para Indicadores, Expert Advisors (EAs) e Scripts na Base de Código do usuário.
- Então o "boopa26" pode começar a fazer seus próprios Indicadores, mas muito simples, e construir lentamente sobre eles até ser capaz de entender e fazer Indicadores mais complexos.
- Então "boopa26" pode começar a fazer seus próprios, mas muito simples EAs e lentamente construir sobre eles até que seja totalmente capaz de entender e fazer EAs mais complexos.
O "boopa26" também deve aprender uma lição muito importante, que o "boopa26" não deve pular todos os passos necessários, pois caso contrário o "boopa26" estará apenas desperdiçando o tempo de todos, e ao invés de um "belo bolo", tudo o que o "boopa26" terá será "carvão queimado".
Eu acho que "boopa26" precisa fazer o seguinte:
- Primeiro, o "boopa26" precisa primeiro aprender o básico da codificação (como em C).
- Depois o "boopa26" precisa ler e seguir o Livro/Tutorial (mesmo que seja antigo e desatualizado).
- Ao mesmo tempo, "boopa26" precisa ler toda a documentação com atenção especial para as atualizações MQL4 que não são mencionadas no Livro/Tutorial.
- Então o "boopa26" precisa estudar vários exemplos de código para Indicadores, Expert Advisors (EAs) e Scripts na Base de Código do usuário.
- Então o "boopa26" pode começar a fazer seus próprios Indicadores, mas muito simples, e construir lentamente sobre eles até ser capaz de entender e fazer Indicadores mais complexos.
- Então "boopa26" pode começar a fazer seus próprios, mas muito simples EAs e lentamente construir sobre eles até que seja totalmente capaz de entender e fazer EAs mais complexos.
"boopa26" também deve aprender uma lição muito importante, que "boopa26" não deve pular todos os passos necessários, pois caso contrário "boopa26" estará apenas perdendo o tempo de todos, e ao invés de um "belo bolo", tudo o que ele terá será "carvão queimado".
1. não precisa de conhecimento c. mql4 é função diferente
2. Já li o livro
3. Já leia a documentação
4. Código escrito já
5. ?
6. ?
boopa26 não faz as pessoas perderem tempo
Professor de FMIC que ensina boopa26 a fazer bolos de carvão vegetal
FMIC classe bolo de carvão vegetal
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
boopa26 pode escrever código de envio de ordens, mas não pode escrever ordem selecionar função para fechar ordens. quer escrever ordem selecionar função para fechar ordens sem para ciclos ou enquanto ciclos. boopa26 quer escrever ordem selecionar função para fechar ordens com condições mas boopa26 não entende para montar ordem selecionar função para fechar ordens
exemplo de envio de pedido de compra
if(OrderTotal()==0)OrderSend(Symbol(),OP_BUY,.1,Ask,3,0,0,NULL,9,0,clrNONE);
exemplo de ordem selecionar. boopa26 não entende
OrderSelect(índice int, int select, int pool)
o que é índice int?
o que é int select?
o que é int pool?
como o int select faz?