[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 594

 

for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELLL && // verifique a posição aberta
OrderSymbol()==lSymbol()) // verifique o símbolo
{

?

 

Ajuda com o código plz! Por que eu recebo 138 neste código, e o que tem a ver com isso? negócios abertos, mas quando você fecha o preço de alguma forma não é o mesmo, o que é? tudo é simples. conselheiro especializado em velas deve fechar o negócio e abrir quando o fractal é penetrado. obrigado antecipadamente pela dica

int s=5;



extern int stime=60;
extern int lots=1;
extern int slippage=5;
extern double sl=NULL;
extern double tp=NULLL;
double upfr,dnfr=0,0;//levels of last fractals
double tClose=NULL;
double tOpen=NULL;
int flag=0;
int init()
{
//----



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

+
//| função de desinicialização especializada |

//+
+
int deinit()
{
// // return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+

+ int start()//open on breakout and close after s candles
{
//
upfr=iFractals(Symbol(),PERIOD_H1,MODE_UPPER,4)
dnfr=iFractals(Symbol(),PERIOD_H1,MODE_LOWER,4);
//OPPER ORDENS ON PROBIT
if(upfr>0 && High[1]>upfr && flag==0) // se o nível fractal estiver acima e o nível fractal for ultrapassado
{
tOpen=Time[0];
tClose=tOpen+s*stime*60;
OrderSend(Symbol(),OP_BUY,lots,Bid,slippage,sl,tp);
flag=1;
}
if(dnfr>0 && Low[1]<dnfr && flag==0)//se o nível fractal estiver baixo e o nível fractal estiver baixo
{
tOpen=Time[0];
tClose=tOpen+s*stime*60;
OrderSend(Symbol(),OP_SELLL,lots,Ask,sl, sl, tp);
flag=1;
}

// FECHAR PEDIDOS POR FIM DO TEMPO
if(Time[0]>=tClose )// se o tempo antes do fechamento tiver passado
{
Print("CLOSE FUNCTION");
OrClose();
flag=0;
}


//
return(0);
}
//+
+
// fechar todos os pedidos
void OrClose()
{ for(int i=OrdersTotal()-1;i>=1;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),lots,OrderOpenPrice(),0.0005);
}
}
return(0);
}
 
Qwertee:

Ajuda com o código plz! Por que estou recebendo um 138 erro neste código??? e o que tem a ver com isso? negócios abertos, mas quando você fecha o preço de alguma forma não é o mesmo, o que é isso?

OrderClose(OrderTicket(),lots,OrderOpenPrice(),0.0005);

mudá-lo para

         if(OrderType()==OP_BUY)
           {
            OrderClose(OrderTicket(),OrderLots(),Bid,slippage);
           }
         else
           {
            OrderClose(OrderTicket(),OrderLots(),Ask,slippage);
           }
 
Boa tarde. Os profissionais, que lidaram com o indicador Zigzag, aconselham como obter os dois últimos valores dos tops: Alto e Baixo?
 

Boa tarde.

Por favor, ajude-me com a abertura de pedidos. Estou usando uma EA em uma conta de demonstração, quando recebo uma condição de Compra ou Venda, ela mostra 130 erros.

Aqui está a função de abertura do pedido:

int NewOrder(int Cmd,double Lot)
{double TP=0; //тейкпрофит
 double SL=0; //стоплосс
 double PR=0; //Цена
 while(!IsTradeAllowed()) Sleep(100);
 RefreshRates ();
 if(Cmd==OP_BUY)
   {PR=Ask;
    if(TakeProfit>0) TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
    if(StopLoss>0) SL=NormalizeDouble(Bid-StopLoss*Point,Digits);}
 if(Cmd==OP_SELL)
   {PR=Bid;
    if(TakeProfit>0) TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
    if(StopLoss>0) SL=NormalizeDouble(Ask+StopLoss*Point,Digits);}
 int tic=OrderSend(Symbol(),Cmd,Lot,PR,20,SL,TP,"",0,0,CLR_NONE);
 if(tic<0) Print("Ошибка открытия ордера: ",GetLastError());
return(tic);}

Verifiquei em outras EA e descobri que tudo estava bem com o cálculo do lote.

Conta demo na Alpari, tipo Micro. take and stop são 100p, fuligem. 10 pips, já que a Alpari tem 5 marcas.

 
 
FAQ:
Normalizar o preço de abertura.


Como normalizá-lo?

Certo?

PR=NormalizeDouble(Ask,Digits);

Se assim for, nada muda.

Eu ainda não tenho muita experiência em programação. Você pode explicar como normalizá-lo?

 
Então verifique previamente o tamanho da parada e o lucro, se for maior que sua parada e lucro - ajuste-os. se for zero. então você precisa definir primeiro uma ordem com parada e lucro zero, e depois modificá-los para os níveis corretos.
 

Boa noite. Pergunta: Quando eu fecho parte de um comércio, a EA abre um novo comércio com um novo bilhete. O magik da nova ordem permanece o mesmo?

 
Instalou o MetaTrader 4, abriu uma conta demo. Tentei abrir/fechar pedidos. Como posso agora fazer o próprio terminal acionar uma ordem de venda quando o preço sobe e uma ordem de compra quando desce, usando informações como "você precisa de uma diferença de 2 velas para fechar a ordem antiga e abrir uma nova"?
Razão: