Características úteis da KimIV - página 97

 

o terminal tem uma opção para definir o canal equidistante, você pode defini-lo em vez de desenhar as linhas de tendência

aqui está uma função semelhante à definição da linha de tendência

// установка равноудалённого канала
void SetСhannel(string nm,datetime t1,double p1,datetime t2,double p2,datetime t3,double p3,color cl=Red,int st=0,int wd=1,bool ry= False){
// Параметры:
// nm - наименование               (  ""  - текущее время)
// t1,t2,t3 - время открытия бара  (  0   - Time[10]
// p1,p2,p3 - ценовой уровень      (  0   - Low[10])
// cl - цвет линий
// st - стиль линий                (  0   - простая линия)
// wd - ширина линий               (  1   - по умолчанию)
// ry - луч                        (False - по умолчанию)

  if( nm=="") nm=TimeToStr(TimeCurrent(), TIME_DATE| TIME_SECONDS);
  if(ObjectFind( nm)<0){
   ObjectCreate( nm,OBJ_CHANNEL,0, t1, p1, t2, p2, t3, p3);
   ObjectSet( nm, OBJPROP_COLOR, cl);
   ObjectSet( nm, OBJPROP_STYLE, st);
   ObjectSet( nm, OBJPROP_WIDTH, wd);
   ObjectSet( nm, OBJPROP_RAY, ry);
  }
  ObjectSet( nm, OBJPROP_TIME1, t1);
  ObjectSet( nm, OBJPROP_PRICE1, p1);
  ObjectSet( nm, OBJPROP_TIME2, t2);
  ObjectSet( nm, OBJPROP_PRICE2, p2);
  ObjectSet( nm, OBJPROP_TIME3, t3);
  ObjectSet( nm, OBJPROP_PRICE3, p3);
}
 
Roger писал(а) >>

Parece estar à direita.

oops...

 
DECIDE >>:

в терминале есть возможность установки равноудалённого канала, можно вместо отрисовки трендовых линий устанавливать его

вот составил функцию по подобию установки трендовой линии

interessante

como definir a distância entre as linhas ?

 

a distância é definida por si mesma, você só precisa indicar três pontos t1,p1,t2,p2,t3,p3

Desisti desta função (tem uma linha curta), é mais fácil, mais instrutivo desenhar linhas de tendência

 
DECIDE >>:

растояние само устанавливается, надо только указать три точьки t1, p1, t2, p2, t3, p3

отказался я от этой функции(там одна линия короткая), проще, нагляднее просто трендовые линии рисовать

definir a distância entre as linhas

a segunda linha deve ser deslocada em relação à primeira (tendência) e paralela a ela horizontalmente por um certo valor de barras - por exemplo, por 5 barras

este é também um canal equidistante que corta picos para cima ou para baixo dependendo da definição da linha de base e da direção da tendência.

 

A função remove os zeros da matriz duplicada e retorna o índice do mínimo da matriz

int ArrMin(double & x[]){
  while( x[ArrayMinimum( x)]==0){
    for(int i=ArrayMinimum( x); i<ArraySize( x)-1; i++){
      x[ i]= x[ i+1];
    }
    ArrayResize( x,ArraySize( x)-1);
  }
  return(ArrayMinimum( x));
}
 

Boa tarde a todos!

Não sei se este assunto já foi discutido... Mas eu queria sugerir que se fizesse uma função para que os EAs trabalhassem com um equilíbrio fixo.

Isto é necessário para otimizar os EAs.

O que temos aqui é o seguinte: quando iniciamos a EA, ela começa a ganhar e o AccountBalance começa a aumentar e a EA usa uma quantidade cada vez maior de saldo.

Se introduzirmos uma variável, como Valance, e definirmos um valor nela, que a EA "verá" e comprará somente por esse valor. Isto nos permitirá pensar que toda vez que a EA começar a funcionar, ela pensará que só tem o dinheiro do Balanço à sua disposição e durante todo o período de testes poderemos acreditar como a EA funcionaria se a mudássemos em um determinado dia, excluindo o fator da mudança real do balanço.

Otimizado com esta variável, o Expert Advisor trabalhará mais normalmente no futuro.

A única coisa que falta fazer é codificar tal função.

Isto é tudo o que sei:

equilíbrio duplo externo = 10000;

int init() {

//fixar o equilíbrio no início da operação da EA

Balance=ContaBalanceamento;

retorno (0);

}

int start {

//-------------------------

???

//-------------------------

}

E o que escrever em ???? Eu não sei. Se houvesse uma função no EA onde o cálculo do número possível de ordens de abertura com um determinado lote fosse realizado, usando AccountBalance, você poderia simplesmente substituir AccountBalance() por uma variável, mas nem todos os EAs fazem isto explicitamente.

 

Не знаю, может этот вопрос уже обсуждался... Но я хотел предложить сделать функцию для работы советника с фиксированным балансом.

Eu resolvi este problema desta maneira

Tenho muitos Expert Advisors diferentes e quando começo qualquer um deles, pela primeira vez ao dia, o saldo da conta é armazenado em uma variável global e com base nisso os Expert Advisors calculam o número de lotes e a renda resultante, mostrando as informações no gráfico nos comentários (rendimento: mais ou menos %)

 
DECIDE писал(а) >>

Eu tenho muitos EAs diferentes e quando começo qualquer um deles, a primeira vez por dia, o saldo da conta é salvo em uma variável global e com base nisso os EAs calculam o número de lotes e a renda resultante, mostrando informações no gráfico nos comentários (rendimento: mais ou menos %)

Você pode compartilhar conosco os detalhes de como isso pode ser feito?

 

нужна мне такая возможность - параллельного горизонтального смещения (копирования, переноса...) трендовой линии на определенное кол-во баров

Geronimo, descreva o algoritmo com mais detalhes em meu pessoal ou ICQ: 9773190, não vamos desarrumar o fio

De qualquer maneira eu posso ajudar

compartilhar os detalhes de como fazer isso?

Nail_Saby, eu descrevi o essencial e você pode implementá-lo de diferentes maneiras, depende de como e o que exatamente você precisa