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

 

Добрый день.Очень нужен советник,который будет лишь закрывать сделки.Дело в том,что вход в рынок может быть и обдуманный и с ясной головой и четкими правилами...А вот с выходом у многих-засада.Тут весь набор психологии: и нервы и надежда,и страх с жадностью.Думаю,что при входе по тренду,выход должен обеспечивать стохастик пересекающий уровень 50%.При пересечении сверху вниз должен закрывать бай-ордера,а при пересечении снизу вверх соответственно селл-ордера.

A propósito, este conselheiro pode substituir o estúpido stop-loss ..... Acho que não seria muito difícil escrever, e acho que seria útil.

 
Lim1:

Olá!

Tenho uma pergunta - para onde vão os resultados dos testes (rentabilidade, número total de negócios, etc.) e como podemos fazer com que esses números sejam atribuídos às variáveis (no código) no final dos testes?

Como posso fazer esses números entrarem nas variáveis (no código) após o teste? Obrigado!


Você escreve sobre otimização... Selecione a opção de otimização (passe) que deseja, clique duas vezes com o mouse - é isso... parâmetros deste passe

Eles estão nas "propriedades" do Expert Advisor. Selecione o período de teste com estes parâmetros e vá em frente... - Clique em "iniciar".

 

Por favor, me dê o código para calcular o fator de recuperação.

 

Boa tarde,

Não consigo decidir qual demo usar, muitos no testador não executam corretamente o algoritmo.

Qual é o seu conselho?

O que é um martin e um travamento?

 

что такое мартин и локирование?


Digite uma busca no site. Martingale. O travamento é a abertura de uma posição oposta. Isto é apenas para lhe dar tempo para pensar sobre o assunto. Uma posição anula a outra e a conta está meio congelada.
 

Você poderia me dizer se é possível exibir os dados dos resultados dos testes na forma de Alertas na revista?

Por exemplo, insira uma variável que obtenha o valor da quantidade total de negócios (ou o valor da rentabilidade total...) no final do teste.

Como fazer isso?

A otimização está fora de questão...

 
Lim1:

Olá!

Tenho uma pergunta - para onde vão os resultados dos testes (rentabilidade, número total de negócios, etc.) e como podemos fazer com que esses números sejam atribuídos às variáveis (no código) no final dos testes?

Uma descrição detalhada deste artigo pode ser encontrada em myAlpari.

Veja Auto-avaliação dos resultados de testes de um consultor especializado

 

há duas linhas

A estratégia é a seguinte - comprar em cima, comprar em baixo, vender em baixo.

Decidi considerar uma possibilidade: depois de cruzar as linhas o preço desce para a linha com um longo período, comprar, fazer um pedido de compra/venda.

Decidi fazer isso com a ajuda de bandeiras para cima/para baixo,

mas não funcionou

if (SMA_1_0 > SMA_2_0 && SMA_1_1 < SMA_2_1) // Verifique se há cruzamento para cima
{

FecharPosições(); // se houver uma ordem - remover

A=1; // Bandeira para cima
B=0; // Bandeira para baixo
}
se (A ==1 )

{
SL=Bid - StopLoss*Point; // Cálculo de SL aberto.
TP=Bid + TakeProfit*Point; // Cálculo de TP aberto.
Alerta("Tentando abrir a Buy. Waiting for reply...");
Preço_H =SMA_2_0 + 10* Ponto;
OpenPosition(Symbol(), OP_BUYLIMIT, Price_H,Lts, SL, TP);

se (Bilhete > 0) // funcionou :)
{
Alerta ("Open Buy order ",Ticket;)
A=0;
B=0;
retornar;
}
}
//--------------------------------------------------------------------
if (SMA_1_0 < SMA_2_0 && SMA_1_1 > SMA_2_1) // Verificação de cruzamento
{

FecharPosições();

A=0; // Bandeira para cima
B=1; // Bandeira para baixo
}
se (B == 1) // bandeira para baixo se o preço tiver caído para a linha SMA
{
SL=Ask + StopLoss*Point; // Cálculo de SL aberto
TP=Ask - TakeProfit*Point; // Cálculo de TP aberto.
Alerta ("Tentativa de abrir Sell. Waiting for reply...");
Preço_L =SMA_2_0 - 10* Ponto;
OpenPosition(Symbol(), OP_SELLLIMIT, Price_L,Lts, SL, TP);
se (Bilhete > 0) // funcionou :)
{
Alerta ("Pedido de venda aberto", Ticket;)
A=0;
B=0;
retornar; // Sair do início()
}
}
//---------
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----

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

//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. aka KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versão : 19.02.2008 |
//| Descrição : Fechamento de posições a preço de mercado |
//+----------------------------------------------------------------------------+
//| Parâmetros: |
//| sSymbol - nome do instrumento ("" - qualquer símbolo, |
//| NULL - símbolo atual) |
//| iOperação - operação (-1 - qualquer posição) |
//| iMagic - MagicNumber (-1 - qualquer magik) |
//+----------------------------------------------------------------------------+

FecharPosições(string sSímbolo = "", int iOperação = -1, int iMagic = -1) {
int i, k = OrderTotal();

//if (sSymbol == "0") sSymbol = Symbol();
para (i = k - 1; i >= 0; i--) {
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
se ((OrderSymbol() == sSymbol || sSymbol == "") && (iOperation < 0 || OrderType() == iOperation)) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (iMagic < 0 || OrderMagicNumber() == iMagic) ClosePosBySelect();
}
}
}
}
}

//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. aka KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versão : 13.06.2007 |
//| Descrição : Fechamento de uma posição pré-selecionada |
//+----------------------------------------------------------------------------+
void ClosePosBySelect() {
duplo pp;

se (OrderType()==OP_BUY) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pp, Slippage);
}
se (OrderType()==OP_SELL) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), pp, Slippage);
}
}

//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. aka KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versão : 13.06.2007 |
//| Descrição : Abertura de uma posição. Versão da função para testes de histórico. |
//+----------------------------------------------------------------------------+
//| Parâmetros: |
//| sy - nome do instrumento ("" - símbolo atual) |
//| op - operação |
|| ll - lote
//| sl - nível de parada |
///| tp - tomar nível |
//| mn - MagicNumber |
//+----------------------------------------------------------------------------+
vazio OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int mn=0) {
duplo pp;
int err, bilhete;

se (sy==="") sy=Símbolo();
se (op===OP_BUY) {
pp=MarketInfo(sy, MODE_ASK);
{} else {
pp=MarketInfo(sy, MODE_BID);
}
ticket=OrderSend(sy, op, op, ll, pp, Slippage, sl, tp, "", mn, 0);
se (bilhete<0) {
err=GetLastError();
Imprimir("Error(",err,") abrir ",GetNameOP(op),": ",ErrorDescription(err));
Print("Ask=",Ask," Bid=",Bid," sy=",sy," ll=",ll,
" pp=",pp," sl=",sl," tp=",tp," mn=",mn);
}
}

//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. aka KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versão : 01.09.2005 |
//| Descrição : Retorna o nome da operação comercial |
//+----------------------------------------------------------------------------+
//| Parâmetros : |||| Parâmetros
//| iOperation - identificador da operação comercial |||
//+----------------------------------------------------------------------------+

string GetNameOP(int iOperation) {
switch (iOperation) {
caso OP_BUY: devolução ("Comprar");
caso OP_SELL: devolução ("Sell");
caso OP_BUYLIMIT: devolução ("Buy Limit");
caso OP_SELLLIMIT: devolução ("Sell Limit");
caso OP_BUYSTOP: devolução ("Buy Stop");
caso OP_SELLSTOP: devolução ("Sell Stop");
padrão: devolução ("Operação Desconhecida");
}
}

 

Cavalheiros, amigos! Quem sabe, favor compartilhar o link onde você pode ver/sentir as fórmulas para resolver as equações de progressão aritmética da segunda ordem.

Por exemplo:

Em uma progressão aritmética, as diferenças entre termos consecutivos são constantes. Se as diferenças não são constantes, mas as diferenças das diferenças são constantes, então a progressão é chamada de progressão aritmética de segunda ordem. As progressões aritméticas de ordens superiores são definidas de forma semelhante. Por exemplo, 2, 6, 12, 20, 30, ..., n é uma progressão aritmética de segunda ordem porque as diferenças de 4, 6, 8, 10, ..., n formam uma progressão aritmética com d = 2.

Aqui preciso de fórmulas de cálculo para encontrar o número de membros de tal progressão... Eu pesquisei em toda a Internet - apenas matemática simples por aí. :((((

 
artmedia70:

Cavalheiros, amigos! Quem sabe, favor compartilhar o link onde você pode ver/sentir as fórmulas para resolver equações de progressão aritmética de segunda ordem.

Googled
Razão: