Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1559

 
Tsaryoff5614:

Boa tarde cavalheiros programadores!!!

Por favor, ajude um novato com uma função.

A função conta o lucro total por histórico.

O problema é que ele trabalha para um corretor e não quer trabalhar para outro.

Funciona em Hercic, mas não em RoboForex. Eu tenho uma conta ECN na RoboForex.

Eu não sei qual é o problema. Aqui está o código:

dupla lastloss()

{

int tip = -1,cnt = 0;

lastloss duplo = 0;

for(int i = OrderHistoryTotal()-1; i>=0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if(cnt == 0) typ = OrderType();

if(cnt > 0 && OrderType()!= digite) break;

lastlos += OrderProfit() + + OrderSwap() + OrderCommission();

cnt++;

}

}

}

retorno(lastlos);

}

Será que o compilador não jura por esta linha?

lastlos += OrderProfit() + + OrderSwap() + OrderCommission();

Talvez um + precise ser removido, para que funcione corretamente?

E por que você está adicionando troca e comissão aos lucros? Ainda que
OrderProfit()

Também pode ser negativo...

E de que tipo de lucro total estamos falando se você estiver processando apenas 1 ou poucos pedidos correspondentes, mas não todos eles?

A seguir:

 if(cnt > 0 && OrderType()!= typ) break;

parada do ciclo.

 
MakarFX:

1)Em alta velocidade ou se não estiver em carrapatos no testador, ele fechará pelo primeiro preço disponível.

2) Você tem um grande aumento em curso e com um grande lote 1 ponto pode ser mais do que o nível permitido.

3) Eu não entendo o que você quer, o que você precisa rastrear se a zeragem após cada comércio?

3) Eu não entendo o que você quer rastrear se zerando após cada comércio?

Estou falando de rastrear o lucro/perda "dentro" de cada comércio, ou seja, enquanto o preço está "pairando" entre parar e tomar, a quantidade de lucro e perda do comércio atual também muda. Acontece com freqüência para que o preço chegue à zona de lucro, mas não chegue ao take point - ele dá a volta e o negócio é fechado na parada. Preciso de rastreamento de lucros e perdas (em dinheiro) a fim de poder consertá-la em tempo hábil sem deslocar uma parada e uma tomada, ou seja, sem quebrar os parâmetros definidos de tomada e uma parada. Isto é relevante para grandes lotes com um Martin habilitado.

Quando um acordo é fechado - o rastreamento pára e começa de novo para um novo acordo.

 
законопослушный гражданин:

3) Eu não entendo o que você quer rastrear se zerando após cada comércio?

Estou falando de rastrear o lucro/perda "dentro" de cada comércio, ou seja, enquanto o preço é "waffling" entre a parada e a tomada, a quantidade de lucro e perda do comércio atual muda. Acontece com freqüência para que o preço chegue à zona de lucro, mas não chegue ao take point - ele dá a volta e o negócio é fechado na parada. Preciso de rastreamento de lucros e perdas (em dinheiro) a fim de poder consertá-la em tempo hábil sem deslocar uma parada e uma tomada, ou seja, sem quebrar os parâmetros definidos de tomada e uma parada. Isto é relevante para grandes lotes com um Martin habilitado.

Quando um comércio é fechado, o rastreamento pára e recomeça para um novo comércio.

Você só precisa especificar parâmetros de lucro e perda menos prejuízo e lucro de exploração, ou seja

se TakeProfit for 200 pips 0,1 lote, então o lucro é de $20, estabeleça o nível de lucro de $15 e o comércio fechará mais cedo

 
Mihail Matkovskij:

E por que você está adicionando troca com comissão para lucrar? Com
OrderProfit()

também pode ser negativo...

Obrigado por isso, eu também tenho feito essa coisa estúpida.

 
MakarFX:

Tudo que você tem que fazer é especificar os parâmetros de lucro e perda menos perda e lucro de exploração, ou seja

Se TakeProfit for 200 pips 0,1 lote, então o lucro é de $20, estabeleça o nível de lucro em $15 e o comércio fechará mais cedo


Ok, obrigado, vou pensar no assunto e analisá-lo no testador.

 
Você tem um link para uma função que calcula os lucros com base no histórico do pedido?
 

Estou pedindo a ajuda da comunidade...
Como declarar e criar corretamente os objetos globais MQL5?

Se eu fizer desta maneira:

int OnInit()
{
   CIsNewBar* NB_M1=new CIsNewBar(_Symbol,PERIOD_M1);  // Эта строка потом будет в цикле для разных символов
}

void OnTick()
{
    if (NB_M1.IsNewBar())  // (1) Если появился новый бар M1
        {....}
    ......
}

O compilador reclama da linha em OnTick(): 'NB_M1' - identificador não declarado, o que é lógico, pois uma variável local é criada em OnInit().

Se você inserir a declaração global antes do OnInit():

CIsNewBar* NB_M1;

compila sem erros e trabalha com especialistas. Parece que o objeto é criado duas vezes - durante a declaração global e no OnInit().
Mas ocompilador tem esteaviso

declaração de 'NB_M1' esconde variável global -> por linha no OnInit()

ver declaração anterior de 'NB_M1'

Isso significa que uma variável local (dentro de uma função) é criada no OnInit() que esconde uma variável global com o mesmo nome?
E se sim, como esta variável local pode ser "vista" por outra função, OnTick() ?


 
MakarFX:

Obrigado por isso, eu também fiz essa coisa estúpida.

Makar, você costumava fazer a coisa certa e agora quer fazer a coisa estúpida...

Pense em sua matemática de 5ª ou mais séries. Quanto é (-3)-(-7) e quanto é (-3)+(-7)?

É difícil verificar em uma calculadora, Excelência para ajudá-lo.


 
Mihail Matkovskij:
Olá. Você conhece alguma biblioteca disponível na MQL para escrever estruturas de dados em um arquivo e carregá-las posteriormente? Idealmente uma biblioteca que funcione com formato json,json parser, etc.

Não sei como dizer a você para ler a documentação. Se você o leu e a função padrão não é adequada por alguma razão, você deveria ter dito logo...

 
Alexey Viktorov:

Makar, você costumava fazer a coisa certa e agora quer fazer a coisa estúpida...

Pense em sua matemática de 5ª ou mais séries. Quanto é (-3)-(-7) e quanto é (-3)+(-7)?

É difícil verificar em uma calculadora, Excelência para ajudá-lo.


Sim, obrigado. Cheguei a conclusões precipitadas. Eu acertei)