[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 784

 

Eu não entendo bem o princípio de operação...se você não se importa com um simples exemplo...por exemplo C= A + B

Obrigado)

 

Hi. Quero saber como definir o Expert Advisor para abrir um pedido na travessia. Se fechar a ordem com mais ou menos, deixe-a esperar pelo próximo sinal inverso.

A tática é simples

8EMA>26EMA

MACD(5,13,1)>0 (na segunda vela MACD é aberto um pedido)

RSI 21 >(50) COMPRA ABERTA

8EMA<26EMA

MACD(5,13,1)<0 (pedido aberto no segundo castiçal MACD)

RSI 21 <(50) VENDA ABERTA

Obrigado por sua atenção.

Arquivos anexados:
 
Olá, o problema é este. Quando eu dirijo o testador, não há operações.
 

Alguém pode sugerir um algoritmo para verificar se os últimos X pedidos de um determinado símbolo foram

não eram rentáveis? Tenho uma idéia do que fazer, mas receio que não será a melhor opção, enquanto os principais critérios são

velocidade de verificação e carga mínima no processador.

Obrigado!

 
chief2000:

Alguém pode sugerir um algoritmo para verificar se os últimos X pedidos de um determinado símbolo foram

não eram rentáveis? Tenho uma idéia do que fazer, mas receio que não seja a melhor opção, enquanto os principais critérios são

velocidade de verificação e carga mínima no processador.

Obrigado!

double GetLastOrderProfit()
{
    double profit = 0;
    datetime lastCloseTime = 0;
    int cnt = OrdersHistoryTotal();
    for (int i=0; i < cnt; i++)
    {
        if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
        if (OrderSymbol() != Symbol()) continue;
        if (OrderMagicNumber() != MagicNumber) continue;

        if (lastCloseTime < OrderCloseTime())   // find most recent order
        {
            lastCloseTime = OrderCloseTime();
            profit = OrderProfit();
        }
    }
    return (profit);
}

a função não é minha, mas não creio que seja difícil adaptá-la às condições
 

ajudar quem pode.... alguém sabe como fazer uma parada não linear.... e não constante, mas apenas um determinado número de vezes

por exemplo, quando o preço se move para A perda de pips se move para B pips.... e depois quando se move para C se move para D

onde as letras não têm o mesmo valor, mas são diferentes....

 
IgorM:

A função não é minha, mas acho que é fácil modificá-la de acordo com as condições necessárias

Isso são as "flores" :) A parte mais interessante começa depois.

Pensei no primeiro loop para ordenar as ordens para um determinado símbolo e criar uma matriz por bilhete.

Na segunda etapa, ordenar a matriz por tempo próximo.

Mas então devemos obter os lucros do pedido a partir de seu tempo próximo - é possível de alguma forma conectá-los?

sem passar por todas as ordens? - Caso contrário, temos muitos loops.

 
chief2000:

Isso são as "flores" :) A parte mais interessante começa depois.

Pensei no primeiro loop para ordenar as ordens para um determinado símbolo e criar uma matriz por bilhete.

Na segunda etapa, ordenar a matriz por tempo próximo.

Mas então devemos obter os lucros do pedido a partir de seu tempo próximo - é possível de alguma forma conectá-los?

sem passar por todas as ordens? - Caso contrário, recebemos muitos loops.



significa que os bilhetes devem ser armazenados em matrizes imediatamente quando um pedido é feito com sucesso, e então a análise pode ser feita nos bilhetes

Outra variante é criar um Expert Advisor adicional que lidaria com isso - "restaurar o histórico" do terminal e emitir os dados prontos para serem enviados a um arquivo

 
IgorM:


Isto significa que você deve memorizar os bilhetes em arrays imediatamente, quando um pedido é feito com sucesso, e depois analisá-los

Como opção, eu gostaria de criar um Expert Advisor adicional que fizesse isso - "restaurar o histórico" do terminal e descarregar os dados acabados para um arquivo

Não quero lidar com arquivos como uma questão de princípio, para não amarrar o Expert Advisor a um determinado computador...

Parece que terei que criar no primeiro laço uma nova matriz para os bilhetes de um símbolo especificado. E então, em dois ciclos, classifique-a

por data, lembrando os bilhetes na nova matriz. Da matriz resultante, execute um novo loop para verificar o lucro

para as últimas encomendas.

 
chief2000:

Não quero mexer nos arquivos por uma questão de princípio, para não ligar a EA a um computador específico...

Parece que terei que criar uma nova matriz no primeiro laço para os bilhetes de um determinado símbolo. E então, em dois ciclos, classifique-a

por data, lembrando os bilhetes na nova matriz. Da matriz resultante, execute um novo loop para verificar o lucro

para as últimas encomendas.


A Integer publicou o código para trabalhar com a história. Classificação por abertura, classificação por fechamento. Basta pesquisar.