Boa tarde a todos. Estou tentando anexar um cálculo de tamanho de lote à máquina Graal, para que o lote seja definido como uma porcentagem do depósito em caso de perda. Em outras palavras, se um stop loss desencadeia, a porcentagem especificada do depósito é perdida, ou se o depósito é pequeno para essa porcentagem, então o lote é ajustado ao mínimo possível para o corretor... Encontrei um script em algum site que faz essas coisas e transferi o código do script para mim mesmo, mas o lote não é considerado correto... Eu o fiz. Nas variáveis de entrada, declarei uma variável responsável pelo risco máximo.
externint MaxRisk=1;// МАКСИМАЛЬНЫЙ % УБЫТКА ПРИ СТОП ЛОССЕ?
Em seguida, declaro as variáveis no carrapato. Uma variável que armazena a quantidade de fundos livres na conta. Uma variável de um valor de ponto de um símbolo. Uma variável do lote mínimo de um corretor. Uma variável que armazena o valor do lote máximo no corretor. E a variável que armazena a etapa de tamanho do lote.
E então é calculado o volume do lote com um determinado risco em uma determinada parada de perda. Stop Loss é calculado por atp ou fixo em pips - este cálculo funciona corretamente porque se eu colocar um lote fixo então tudo está bem aberto e funciona. A fórmula para calcular o volume do lote é a seguinte.
double lot =MathFloor((Free*MaxRisk/100)/(sl*LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА, КОТОРУЮ Я СОВСЕМ НЕ ПОНИМАЮ((((if(lot<Min_Lot) lot=Min_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ МЕНЬШЕ ЧЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ЛОТ ПРИСВАЕМАЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРАif(lot>Max_Lot) lot=Max_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ БОЛЬШЕ ЧЕМ МАКСИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ОЛТ ПРИСВАЕВАЕМ МАКС ЛОТ У БРОКЕРА
Depois de todos os cálculos através do valor do lote de impressão para visualizá-lo.
Print("ЛОТ ДО НОРМАЛИЗАЦИИ= "+lot);
lot=NormalizeDouble(lot,Digits());
Print("ЛОТ ПОСЛЕ НОРМАЛИЗАЦИИ= "+lot);
Информация о счете - Состояние окружения - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Boa tarde a todos. Estou tentando anexar um cálculo de tamanho de lote à máquina Graal, para que o lote seja definido como uma porcentagem do depósito em caso de perda. Em outras palavras, se um stop loss desencadeia, a porcentagem especificada do depósito é perdida, ou se o depósito é pequeno para essa porcentagem, então o lote é ajustado ao mínimo possível para o corretor... Encontrei um script em algum site que faz essas coisas e transferi o código do script para mim mesmo, mas o lote não é considerado correto... Fiz o seguinte. Nas variáveis de entrada, declarei uma variável responsável pelo risco máximo.
Em seguida, declaro as variáveis no carrapato. Uma variável que armazena a quantidade de fundos livres na conta. Uma variável de um valor de ponto de um símbolo. Uma variável do lote mínimo de um corretor. Uma variável que armazena o valor do lote máximo no corretor. E uma variável que armazena a etapa de tamanho do lote.
E então é calculado o volume do lote com um determinado risco em uma determinada parada de perda. Stop Loss é calculado por atp ou fixo em pips - este cálculo funciona corretamente porque se eu colocar um lote fixo então tudo está bem aberto e funciona. A fórmula para calcular o volume do lote é a seguinte.
Após todos estes cálculos, imprimo o valor do lote para verificá-lo.
O que está impresso no diário de bordo pode ser visto em ***
À primeira vista, a função parece estar bem. A única coisa que você deve colocar na fórmula não é o preço de parada do pedido, mas a distância desde a abertura do pedido até a parada em pontos.
Então precisamos normalizar o lote com precisão, não para _Digitos mas para Passo - (passo incremental do tamanho do lote). A impressão deve ser emitida através do DoubleToString() com a mesma precisão, então você verá o que quer ver.
À primeira vista, a função parece boa. A única coisa que devemos acrescentar à fórmula é a distância em pontos desde a abertura do pedido até a parada, e não o preço da parada do pedido.
Além disso: devemos normalizar o lote com precisão, não para _Digitos mas para Passo - (passo incremental do tamanho do lote) e você deve imprimir usando DoubleToString() com a mesma precisão.
Minha matemática não é muito boa - como calcular a distância da abertura do pedido para parar e substituir o sl por este?
DoubleToString("ЛОТ ПОСЛЕ НОРМАЛИЗАЦИИ= "+lot);// ВЫВОД ЗНАЧЕНИЯ ЛОТА
Anormalizou o valor do lote desta forma
lot=NormalizeDouble(lot,Step);// НОРМАЛИЗАЦИЯ ЗНАЧЕНИЯ ЛОТА
Portanto, resta saber como calcular a distância da posição aberta até a parada no código.
Muito obrigado pelo pedaço de código, mas a questão agora é que tipo declarar as variáveis neste pedaço de código e que valores atribuir a elas? Eu não sou um feiticeiro, estou apenas aprendendo.
Muito obrigado pelo pedaço de código, mas a questão agora é que tipo declarar as variáveis neste pedaço de código e que valores atribuir a elas? Eu não sou um mágico, estou apenas aprendendo.
Olá. Como faço para fazer um quadro de líderes aqui?
top ?
Boa tarde a todos. Estou tentando anexar um cálculo de tamanho de lote à máquina Graal, para que o lote seja definido como uma porcentagem do depósito em caso de perda. Em outras palavras, se um stop loss desencadeia, a porcentagem especificada do depósito é perdida, ou se o depósito é pequeno para essa porcentagem, então o lote é ajustado ao mínimo possível para o corretor... Encontrei um script em algum site que faz essas coisas e transferi o código do script para mim mesmo, mas o lote não é considerado correto... Eu o fiz. Nas variáveis de entrada, declarei uma variável responsável pelo risco máximo.
Em seguida, declaro as variáveis no carrapato. Uma variável que armazena a quantidade de fundos livres na conta. Uma variável de um valor de ponto de um símbolo. Uma variável do lote mínimo de um corretor. Uma variável que armazena o valor do lote máximo no corretor. E a variável que armazena a etapa de tamanho do lote.
E então é calculado o volume do lote com um determinado risco em uma determinada parada de perda. Stop Loss é calculado por atp ou fixo em pips - este cálculo funciona corretamente porque se eu colocar um lote fixo então tudo está bem aberto e funciona. A fórmula para calcular o volume do lote é a seguinte.
Depois de todos os cálculos através do valor do lote de impressão para visualizá-lo.
O que é exibido no diário de bordo
Boa tarde a todos. Estou tentando anexar um cálculo de tamanho de lote à máquina Graal, para que o lote seja definido como uma porcentagem do depósito em caso de perda. Em outras palavras, se um stop loss desencadeia, a porcentagem especificada do depósito é perdida, ou se o depósito é pequeno para essa porcentagem, então o lote é ajustado ao mínimo possível para o corretor... Encontrei um script em algum site que faz essas coisas e transferi o código do script para mim mesmo, mas o lote não é considerado correto... Fiz o seguinte. Nas variáveis de entrada, declarei uma variável responsável pelo risco máximo.
Em seguida, declaro as variáveis no carrapato. Uma variável que armazena a quantidade de fundos livres na conta. Uma variável de um valor de ponto de um símbolo. Uma variável do lote mínimo de um corretor. Uma variável que armazena o valor do lote máximo no corretor. E uma variável que armazena a etapa de tamanho do lote.
E então é calculado o volume do lote com um determinado risco em uma determinada parada de perda. Stop Loss é calculado por atp ou fixo em pips - este cálculo funciona corretamente porque se eu colocar um lote fixo então tudo está bem aberto e funciona. A fórmula para calcular o volume do lote é a seguinte.
Após todos estes cálculos, imprimo o valor do lote para verificá-lo.
O que está impresso no diário de bordo pode ser visto em ***
À primeira vista, a função parece estar bem. A única coisa que você deve colocar na fórmula não é o preço de parada do pedido, mas a distância desde a abertura do pedido até a parada em pontos.
Então precisamos normalizar o lote com precisão, não para _Digitos mas para Passo - (passo incremental do tamanho do lote). A impressão deve ser emitida através do DoubleToString() com a mesma precisão, então você verá o que quer ver.
Boa tarde a todos. Estou tentando obter um cálculo do tamanho do lote na máquina Graal,
Eu já fiz isso
À primeira vista, a função parece boa. A única coisa que devemos acrescentar à fórmula é a distância em pontos desde a abertura do pedido até a parada, e não o preço da parada do pedido.
Além disso: devemos normalizar o lote com precisão, não para _Digitos mas para Passo - (passo incremental do tamanho do lote) e você deve imprimir usando DoubleToString() com a mesma precisão.
Minha matemática não é muito boa - como calcular a distância da abertura do pedido para parar e substituir o sl por este?
Anormalizou o valor do lote desta formaPortanto, resta saber como calcular a distância da posição aberta até a parada no código.
Então resta saber como calcular a distância entre a abertura e a parada no código?
Muito obrigado pelo pedaço de código, mas a questão agora é que tipo declarar as variáveis neste pedaço de código e que valores atribuir a elas? Eu não sou um feiticeiro, estou apenas aprendendo.
Muito obrigado pelo pedaço de código, mas a questão agora é que tipo declarar as variáveis neste pedaço de código e que valores atribuir a elas? Eu não sou um mágico, estou apenas aprendendo.
preço aberto para comprar
preço de compra stop loss
divulgaçãoSaudações!
Alguém pode me ajudar?