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

 
valenok2003:

direitos autorais
string copyright = "\xA9";
 
ToLik_SRGV:

obrigado
 
Mais uma vez, volto à pergunta que fiz https://forum.mql4.com/ru/15972/page693 - aqui, transferência de parâmetros entre indicadores e indicadores - especialistas. É claro que o uso proposto de variáveis globais resolve parcialmente este problema, mas outra questão se coloca! De acordo com a descrição das variáveis globais ......... Uma variável GV só pode ser do tipo duplo, mas como esperamos que os Consultores Especialistas saibam se a variável é recebida de um determinado símbolo e período de tempo ao receber o valor de uma variável global ?
 
Infinity:
Novamente, volto à pergunta que fiz https://forum.mql4.com/ru/15972/page693 - aqui, transferência de parâmetros entre indicadores e indicadores - especialistas. É claro que o uso proposto de variáveis globais resolve parcialmente este problema, mas outra questão se coloca! De acordo com a descrição das variáveis globais ......... Uma variável GV só pode ser do tipo duplo, mas como esperamos que os Consultores Especialistas saibam se a variável é recebida de um determinado símbolo e período de tempo ao receber o valor de uma variável global?

Codificar os símbolos. Embora seja possível usar nomes de variáveis para este fim, por exemplo EUSRUSD_H1_Var1
 
cyclik33:


Feito no programa Gorando, com a adição de seu martin.

//+------------------------------------------------------------------+
//| Copyright 2005, Gordago Software Corp. |
//| http://www.gordago.com/ |
//| versão 2.0 |
//+------------------------------------------------------------------+




OpenBuy nulo() {
duplo dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lote;

se (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
senão se (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lote;


se (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;

se (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Ponto;

int numorder = OrderSend(Symbol(), OP_BUY, Lots_New, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);

se (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

vazio OpenSell() {
duplo dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lote;

se (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
senão se (!isLossLastPos(NULL, -1, MAGIC))
Lots_New = Lote;

se (dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*Point;

se (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;

int numorder = OrderSend(Symbol(),OP_SELLL, Lots_New, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);

se (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}

Você tem

OpenBuy nulo() {

duplo dStopLoss = 0, dTakeProfit = 0;
double Lots_New = Lote;

se (isLossLastPos(NULL, -1, MAGIC))
Lots_New *= 2;
senão se (!isLossLastPos(NULL, -1, MAGIC))

Lots_New = Lote;

É uma função e logo no início desta função você atribui o valor = Lote à variável Lots_New;

Pense em como ele mudará depois se você sempre o trouxer de volta ao seu estado original?

Onde eu lhe disse para escrevê-lo? Nas variáveis externas antes da função de início.

E normalizar o valor do lote para o tamanho correto:

Lots_New = NormalizeLot(Lote*2, Falso, "");

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 16.05.2008                                                     |
//|  Описание : Возвращает нормализованное значение торгуемого лота.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    lo - нормализуемое значение лота.                                       |
//|    ro - способ округления          (   False    - в меньшую,               |
//|                                        True     - в большую сторону)       |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//+----------------------------------------------------------------------------+
double NormalizeLot(double lo, bool ro=False, string sy="") {
  double l, k;
  if (sy=="" || sy=="0") sy=Symbol();
  double ls=MarketInfo(sy, MODE_LOTSTEP);
  double ml=MarketInfo(sy, MODE_MINLOT);
  double mx=MarketInfo(sy, MODE_MAXLOT);

  if (ml==0) ml=0.1;
  if (mx==0) mx=100;

  if (ls>0) k=1/ls; else k=1/ml;
  if (ro) l=MathCeil(lo*k)/k; else l=MathFloor(lo*k)/k;

  if (l<ml) l=ml;
  if (l>mx) l=mx;

  return(l);
}
 
Vinin:

Codificar os símbolos. Embora possamos usar nomes de variáveis para este fim, por exemplo EUSRUSD_H1_Var1


Certo! Obrigado! Mas ainda não está claro... Acontece que no indicador eu tenho que escrever todos os nomes de variáveis, correspondendo ao número total de símbolos possíveis. E se eu quiser passar um parâmetro do indicador em algum momento predefinido, terei que escrever o código de definição do símbolo do indicador. E então, usando comparações ou outras funções do tipo caso, determinarei qual variável global nomeada para escrever o parâmetro! Eu entendo tudo corretamente! ?

E aqui está outra pergunta retórica, ou apenas para saber sua opinião. Há os chamados "padrões" na natureza da análise. Os padrões nada mais são do que padrões baseados em certos momentos de repetição (ou parâmetros). Mas infelizmente o mercado é uma substância instável, portanto cada padrão pode, até certo ponto, ser tratado como um padrão inexato, ou um pouco desviado de certos parâmetros, sendo fiel à formação do padrão. Se tomarmos qualquer período de tempo, por exemplo 15 minutos, como base de análise, veremos que haverá uma certa quantidade de padrões sobre ele surgindo em certas condições. E haverá algumas situações quando o padrão não for formado, mas estas situações estão muito próximas da formação do padrão, elas simplesmente não se encaixam em alguns parâmetros (elas se desviaram um pouco). Esta situação poderia ter sido evitada por condições sensatas de formação de padrões. Neste caso, haveria mais padrões e mais possibilidades de entrar no mercado, mas o número de padrões falsos aumentaria porque os parâmetros não foram especificados estritamente. (Se considerarmos que com parâmetros rigorosos o padrão pode até mesmo não aparecer dentro de um dia com estas condições).

Com que parâmetros (condição dura ou suave) devo usar para formar um padrão!

 

Ajude-me a resolver um problema!


Eu procuro por pedidos que estão abertos ou pendentes. Se eles estiverem disponíveis, então eu determino qual ordem é de compra ou venda. Sob certas condições (se uma for maior que a outra ou menor que a terceira), eu quero fechar esta ordem. Alterar seus parâmetros e abri-lo novamente.

O problema é que há sempre um sinal para fechar a ordem e para abri-la. É por isso que meu pedido fecha, depois abre novamente, e assim por diante, abre e fecha ... )))

Como resolver este problema ? Ga


 
Infinity:


Exatamente! Obrigado! Mas ainda não está claro. Acontece que em meu indicador precisarei prescrever todos os nomes de variáveis, correspondentes ao número total de caracteres possíveis. E se eu quiser passar um parâmetro do indicador em algum momento predefinido, terei que escrever o código de definição do símbolo do indicador. E então, usando comparações ou outras funções do tipo caso, determinarei qual variável global nomeada para escrever o parâmetro! Eu entendo tudo corretamente! ?

E apenas uma pergunta retórica, ou apenas para obter sua opinião. Há os chamados "padrões" na natureza da análise. Os padrões nada mais são do que padrões baseados em certos momentos (ou parâmetros) repetitivos. Mas infelizmente o mercado é uma substância instável, portanto cada padrão pode, até certo ponto, ser tratado como um padrão inexato, ou um pouco desviado de certos parâmetros, sendo fiel à formação do padrão. Se tomarmos qualquer período de tempo, por exemplo 15 minutos, como base de análise, veremos que haverá uma certa quantidade de padrões sobre ele surgindo em certas condições. E haverá algumas situações quando o padrão não for formado, mas estas situações estão muito próximas da formação do padrão, elas simplesmente não se encaixam em alguns parâmetros (elas se desviaram um pouco). Esta situação poderia ter sido evitada por condições sensatas de formação de padrões. Neste caso, haveria mais padrões e mais possibilidades de entrar no mercado, mas o número de padrões falsos aumentaria porque os parâmetros não foram especificados estritamente. (Se considerarmos que com parâmetros rigorosos o padrão pode até mesmo não aparecer dentro de um dia com estas condições).

Com que parâmetros (condição dura ou suave) devo usar para formar um padrão!

Você pode fazer isso com parâmetros, mas não com padrões. Primeiro é preciso definir os critérios. Semelhante, não semelhante. E se for semelhante, então até que ponto. Pelo menos por quanto (por cento). Em um caso o componente tempo, no outro - o preço. Como correlacioná-los uns com os outros. Embora eu possa fixar uma camada neurônica. A camada Kohonen faz um bom trabalho com isso
 

Ajude-me a resolver um problema!


Eu procuro por pedidos que estão abertos ou pendentes. Se eles estiverem disponíveis, então eu determino qual ordem é de compra ou venda. Sob certas condições (se uma for maior que a outra ou menor que a terceira), eu quero fechar esta ordem. Alterar seus parâmetros e abri-lo novamente.

O problema é que há sempre um sinal para fechar a ordem e para abri-la. É por isso que meu pedido fecha, depois abre novamente, e assim por diante, abre e fecha ... )))

Como resolver este problema ? Ga
 
Necron:
Roger, obrigado, mas ainda não funciona corretamente. Tentei outra rede de arrasto, mas o erro ainda existe :( Existe alguma diferença entre uma postura de arrasto e várias de arrasto ao mesmo tempo?

Eu entendo, você define a variável ro no início da função, mas você não a atribui em nenhum lugar, ou seja, é 0.
Razão: