[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 65

 
Vinin:

Vou fazer do meu jeito e a contagem regressiva será diferente. Eu vou sempre do passado para o presente. Mas é uma questão de gosto. De fato, com a abordagem correta, não importa realmente.

Olá,

Por favor, ajude com a página. (Posto 56, 58 páginas).

 
Roger:


Provavelmente muito rápido, eu deveria ter estudado um pouco. :-)

Então, você saberia que compra à ordem e vende à ordem. Se os vendêssemos, o preço deles seria inferior ao preço da oferta.


Não, é exatamente o oposto do que você escreveu. É claro, obrigado por sua atenção. Pensei muito, descobri desta e daquela maneira, e você está errado.

De modo geral, vejo que o problema não está nos Aks and Bids, e eu não o resolvi.

 
Dimka-novitsek:

Desculpe, eu também tenho o meu. Aqui, eu acabei de jorrar o código e ele não funciona.

//+------------------------------------------------------------------+
//| tipo de pedido.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2011, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
duplo New_Time=0,razniza, r;int i=0,h=0,q=0,w=0,s=0,g=0;
int start()
{int M,Y;
//----
bilhete duplo,Lots=0,2,fractal_u=Ask,TakeProfit=50,Points = MarketInfo (Symbol(), MODE_POINT);
//----
se (i<10)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alerta("New_Time",New_Time);i++; }
Alerta("OrderTypeOP_BUYSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Bid,5, 0 );



se (h<10)
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alerta("New_Time",New_Time);h++; }
Alerta("OrderTypeOP_SELLSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

se (q<10)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Bid,3,0,5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alerta("New_Time",New_Time); q++; }
Alerta("OrderTypeOP_BUY",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Bid,5, 0 );

se (w<10)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alerta("New_Time",New_Time);w++; }
Alerta("OrderTypeOP_SELL",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

se (s<10)
{
ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alerta("New_Time",New_Time); s++; }
Alerta("OrderTypeOP_BUYLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

se (g<10)
{
ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"open a position",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alerta("New_Time",New_Time);g++; }
Alerta ("OrderTypeOP_SELLLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Bid, 5, 0 );






//----
retorno(0);
}
//+------------------------------------------------------------------+

Eu o fiz bem rápido, eu o preparei com o propósito de obter um valor numérico do tipo de pedido, ele abre e fecha todos os pedidos em uma fila, quero dizer, todos os tipos. Eu verifiquei OrderClose com as instruções, os parâmetros parecem ser prescritos razoavelmente, corretamente e em seus lugares. O que mais ele precisa?????

 

Alert("Current time day", iTime(NULL,PERÍODO_D1,5));

isto me dá 0, acrescentou:

Alerta("",GetLastError());

dá um erro 4054

ERR_INCORRECT_SERIESARRAY_USE4054Uso incorreto da matriz de séries temporais

O que eu estou fazendo de errado?


 

Por favor, ajude. O código deve apagar todas as ordens do mercado em todos os pares, mas na prática ele só apaga aquelas na janela onde a EA é jogada. Por favor, ajude-me a encontrar o erro.


void CloseAll_b(int Prosk){
string SMB=Símbolo();
para (int i=OrdensTotal()-1;i>=0;i--){
se (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
Alerta("Erro ",GetLastError()," quando o número do pedido é selecionado ",OrderTicket()," por par ",Symbol()));
}
senão{
if(OrderSymbol()!=Symbol()){continuar;}
RefreshRates();
if(OrderType()==OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Prosk,CLR_NONE)){
Alerta("Erro ",GetLastError(),",OrderTicket(),",Symbol()) ao fechar a ordem de compra;
}
}
if(OrderType()==OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Prosk,CLR_NONE)){
Alerta("Erro ",GetLastError(),{ quando o número da ordem de venda é fechado ",OrderTicket(),{ por par ",Symbol()));
} } } } }

Agradecemos antecipadamente.

 
nemo811:

Por favor, ajude. O código deve apagar todas as ordens do mercado em todos os pares, mas na prática ele só apaga aquelas na janela onde a EA é jogada. Por favor, ajude-me a encontrar o erro.


mas você mesmo estabelece a restrição :))

if(OrderSymbol()!=Symbol()){continuar;}

 
sergeev:

mas você mesmo estabelece a restrição :))

if(OrderSymbol()!=Symbol()){continuar;}


Eu concordo - estúpido :)) Como deve ser?
 
nemo811:

Eu concordo - estúpido :))) Qual é o caminho certo?
... Você só tem que removê-lo. Você não quer eliminar as moedas. Portanto, temos que remover esta condição.
 
Eu o removi, mas as ordens para outros pares ainda não estão fechadas. Erro 129 (preço errado) começou a aparecer
 
nemo811:
Eu o removi, mas minhas ordens para outros pares não estão fechando de qualquer forma. Erro 129 (preço errado) continua aparecendo

logo aparece.

Você tem que fazer o Bid and Ask da função MarketInfo

like - ask= MarketInfo(OrderSymbol(), MODE_ASK);

e não se esqueça de normalizar
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS))