Como codificar? - página 153

 
Roger09:
Para chiwing

Tente isto:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

//+------------------------------------------------------------------+

//| script "delete pending order" |

//+------------------------------------------------------------------+

int start()

{

for (int number=OrdersTotal()-1; number >= 0; number--)

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

//+------------------------------------------------------------------+

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}

if ( (OverSymbolDel ==0 ) && (Symbol()==OrderSymbol() ) delPending();

mudar para

if ( (OverSymbolDel ==0 ) && (Symbol()==OrderSymbol() )) delPending();

 

GetClientRect???

Como devo fazer, apesar de querer adquirir as coordenadas do cliente do gráfico?

Quero saber as coordenadas inferiores direitas sem usar OBJPROP_CORNER.

Meus melhores cumprimentos.

 

Eu h1 ea

por favor, ajude-me a modificar o melhor

Arquivos anexados:
 

Ajuda com a lógica

Olá a todos,

Eu gostaria de uma pequena ajuda com alguma lógica de código. Estou tentando construir uma EA de um sistema para o qual estou olhando, mas estou um pouco confuso como escrever a lógica de Compra e Venda de Sinais. Aqui está a lógica do Pseudo do que eu quero transformar em MQL:

COMPRAR LÓGICO:

If (MA_1 > MA_2) and (Previous(MA_1 < MA_2)) // A moving average cross mean we have a "GET READY" signal

// Once we have a "GET READY" signal the following conditions need to be true

// in order for the system to create a "BUY_SIGNAL".

// Note: the following conditions do not necessarily have to become true on the exact same bar,

but need to trigger true within + or - 2 bars of the "GET READY" bar.

( CLOSE > MA3 ) // Price closes above a MA

( CCI Crosses above the ZERO line ) // CCI crosses up above zero

( Fast Stochastic crosses above Slow Stochastic ) // Stochastic triggers to the up side

A Lógica de Venda é exatamente o oposto da lógica de compra.

Não preciso do código EA completo, apenas da lógica convertida para as declarações MQL 'IF' e 'LOOP' para trabalhar o sinal. Acho que posso descobrir o código OpenOrder etc... a partir de muitos exemplos que já estão nesta linha.

Qualquer ajuda que alguém possa dar seria muito apreciada.

Obrigado,

Moxy

 

A melhor aposta é procurar no arquivo de ajuda do metaeditor.

Dê uma olhada em funções como iMa, iStochastic e iCCI. Eles têm exemplos e se você combiná-los com informações, você obterá facilmente ao olhar o código em qualquer EA.

Boa sorte.

Lux

 
luxinterior:
A melhor aposta é procurar no arquivo de ajuda do metaeditor.

Dê uma olhada em funções como iMa, iStochastic e iCCI. Eles têm exemplos e se você os combinar com informações, você obterá facilmente ao olhar o código em qualquer EA.

Boa sorte.

Lux

Olá Lux,

Obrigado pela resposta. Posso elaborar as declarações individuais do iMA, etc... o problema que tenho é como fazer referência às diferentes barras de tempo uma vez que um sinal é acionado. Por exemplo... Se eu tiver um sinal GET READY, preciso olhar as 2 barras antes e 2 barras depois (5 barras no total) para os outros indicadores para confirmar que tenho um SINAL DE COMPRA na abertura da próxima barra. Não tenho certeza se estou fazendo sentido!!

Acho que é... como eu estruturaria o necessário PARA laços etc... quando preciso referenciar as barras tanto antes como depois da barra sendo processada.

Cumprimentos,

Moxy

 
Moxy:
Olá Lux,

Obrigado pela resposta. Posso elaborar as declarações individuais do iMA, etc... o problema que tenho é como fazer referência às diferentes barras de tempo uma vez que um sinal é acionado. Por exemplo... Se eu tiver um sinal GET READY, preciso olhar as 2 barras antes e 2 barras depois (5 barras no total) para os outros indicadores para confirmar que tenho um SINAL DE COMPRA na abertura da próxima barra. Não tenho certeza se estou fazendo sentido!!

Acho que é... como eu estruturaria o necessário PARA laços etc... quando preciso referenciar as barras tanto antes como depois da barra sendo processada.

Cumprimentos,

Moxy

Você faz isto usando a variável shift no iMA(). Você também pode fazer isto com valores Aberto, Alto, Baixo, Fechado, ou seja, Fechado[3] que está a 3 barras de distância da barra atual.

 

Média móvel das mudanças

Ok, preciso de um pouco de ajuda com o código, estou procurando determinar um conjunto de movimentos médios em torno de um MA, então a partir do BAR mais antigo, eu procuro os movimentos acima e abaixo, colocá-los em uma matriz e depois calcular a média dessa matriz.

Aqui está o código com o qual estou começando, procurando por um pouco de ajuda para fazê-lo.

duplo AverageMove()

{

int cbars = iBars(Symbol(),EntryTimeFrame);

int counted_bars = 0,RangeCounter=0,ndx=0,iLimit=0;

duplo valor de retorno,médiaove,pHValor,pLValor,MAValor,RangeValue[],EntryPoint,cHigh,cLow;

bool reset,TradeShort,TradeLong;

iLimit=Bars-1;

if(Symbol() != "AUDNZD") return(0);

for(ndx=0; ndx<iLimit; ndx++)

{

MAvalue = iMA(Symbol(),EntryTimeFrame,EntryMAInterval,0,MovingAverageType,PRICE_MEDIAN,ndx);

pHValor = Alto[ndx];

pLValor = Baixo[ndx];

if(MAvalue pLValue)

{

if(Symbol() =="AUDNZD") Print("MAValue="+MAvalue+" pHValue="+pHValue+" plValue="+pLValue);

reset = verdadeiro;

if(Ponto de entrada > 0 && cAlto > 0)

{

RangeCounter++;

RangeValue[RangeCounter]=cHigh - Ponto de entrada;

}

if(Ponto de entrada > 0 && cBaixo > 0)

{

RangeCounter++;

RangeValue[RangeCounter]=EntryPoint - cLow;

}

Ponto de entrada = MAvalue;

}

if(pHValor < MAvalue && reset) TradeShort = verdadeiro;

if(pLValue > MAValue && reset) TradeLong = verdadeiro;

if(TradeLong)

{

reset = falso;

cAlto = pHValor;

}

if(TradeShort)

{

reset = Falso;

cLow = pLValue;

}

}

ArraySetAsSeries(RangeValue,true);

retval=iMAOnArray(RangeValue,RangeCounter,13,1,PRICE_MEDIAN,0);

Print("Average Move "+retval);

}

 

Eu gostaria de conhecer a área do cliente no gráfico.

A seguir,

Eu gostaria de conhecer a área do cliente no gráfico.

Por favor, me aconselhem.

Assumindo que o ponto do canto superior esquerdo é (0,0), por favor me avise os coordenadores do canto inferior direito.

Neste caso, o ObjectSet(",OBJPROP_CORNER,3)não deve ser usado.

Muitas felicidades e melhores cumprimentos,

 

Moxy,

Se eu o entendi corretamente, então você terá que codificar esta linha por linha em um EA.

exemplo

MA1, índice-1 antes

MA1, índice agora

MA1, índice+1 após

você tem o básico lá