[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 1079

 

Algo simplesmente não parece estar funcionando. POR FAVOR AJUDA.

A idéia é a seguinte: se a vela for maior que um determinado valor, então proíba o comércio posterior.

bool Trade=verdadeiro;

//---------- start()

{.......

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen(); //--------open order if (no order is open) AND (candlestick is not bigger than)

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==-1) Trade=false; //--------- set Tradeto false provided (no open orders) AND (the candlestick is greater than)

......}

//------- usar a função Trade in CheckForOpen().

cheque forOpen() //------------------- verificar condições e ordem em aberto

{\i1}int res;

if( Comércio && A()==-1 && B()==-1) //------- verificar condições abertas

{ res=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,Ask+SL*Point,Bid-TP*Point,"",MAGICMA,0,Red); //--------- se a condição for cumprida, a ordem é aberta

trade=false; } //--------Trade é atribuído um valor de proibição de comércio. E aqui funciona. Se o pedido fechar na ordem de compra, ele então espera que as novas condições definidas venham, mesmo que as antigas ainda estejam em vigor (antes, o conselheiro abriu os pedidos continuamente)

.........}

//-------------------------- verificar a altura das velas

int CheckVolume()

{ duplo volume=Alto[1]-Baixo[1]; //-------medindo a altura do castiçal

se (volume <= CandleVolume*Point) retornar (1); //---------- se a vela for inferior a

se (volume > CandleVolume*Point) retornar (-1);//------------ se a vela for mais do que

retorno(0);}

Também tentou a versão, mas não funcionou:

início nulo()

{ .....

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen();

.....}

.....

int CheckVolume()

{ duplo volume=Alto[1]-Baixo[1]; //-------medida da altura da vela

se (volume <= CandleVolume*Point) retornar (1); //---------- se a vela for inferior a

if (volume > CandleVolume*Point) {Trade=false; return (-1);}//------------ se a vela for maior que

retorno(0);}

 
dzhini:

Não há como funcionar.


Talvez devêssemos fazer um indicador primeiro
 
Vinin:

Talvez devêssemos fazer um indicador primeiro
e não há maneira de fazê-lo sem ele?
 

Ajude-me aqui ! Como faço para que uma impressão apareça uma vez, mas em cada carrapato eu tenho uma gota de impressão.



while(OrdersTotal() != 0 && OrderSelect(index, SELECT_BY_POS, MODE_TRADES)){
    if(OrderType() == OP_BUY)
     {
       Print ("-------   ",OrderSymbol()," "," BUY ",OrderLots()," trade was opened at ", OrderOpenPrice(),"; Stop loss:", OrderStopLoss(),
          "; Take profit:", OrderTakeProfit(), "; Ticket:", OrderTicket(),"; Open time:", OrderOpenTime());
                       return(0);
                }
    if(OrderType() == OP_SELL)
      {
       Print ("-------   ",OrderSymbol()," "," SELL ",OrderLots()," trade was opened at ", OrderOpenPrice(),"; Stop loss:", OrderStopLoss(),
          "; Take profit:", OrderTakeProfit(), "; Ticket:", OrderTicket(),"; Open time:", OrderOpenTime());
                      
       }
index++;
 
itum:

Ajude-me aqui ! Como faço para que uma impressão apareça uma vez, mas a cada carrapato eu recebo uma gota de impressão.


Produzir esta impressão no momento da abertura do pedido.
 
sergeev:
produzir esta impressão quando o pedido for aberto.


Preciso emitir informações sobre pedidos que já foram abertos manualmente ou por outra EA.

 
itum:


Preciso exibir informações sobre pedidos existentes que já foram abertos manualmente ou por outra EA.

Em seguida, exibi-las em um comentário na tela. Comentário
 

O que é este erro? Se eu enviar um correio de teste do terminal, recebo um erro

- 2010.12.28 18:23:55 Mail: 530 5.7.0 Deve emitir um comando STARTTLS primeiro. y1sm3265289fak.15

 
dzhini:
e não há maneira de fazê-lo sem ele?

Você pode, é claro, mas o indicador facilita a verificação visual do algoritmo
 
itum:


Preciso exibir informações sobre pedidos existentes que já foram abertos manualmente ou por outra EA.


Alternativamente, podemos fazer um contador de impressões digitais. Nós declaramos uma variável inteira. Depois verificamos se não há ordens, colocamos a zero. Então verificamos se a variável é igual a zero e se há ordens no mercado, então imprimimos os dados da ordem e incrementamos esta variável em 1. Assim que as ordens forem fechadas, a variável será novamente colocada a zero. Isto significa que o código aguardará pelo menos uma ordem para aparecer e exibirá informações sobre ela no registro.