Na verdade, sim. Talvez seja tarde demais, mas eu não entendo. Esse é essencialmente o lucro em pps. Essa é a distância da abertura ao fechamento. Por que então a expressão está errada?
Porque temos que dividir por ponto o resultado desta expressão
Estou ficando um pouco cheio de mim mesmo... :) O problema:
1. Há uma posição aberta de 0,1 lote
2. Seu valor TakeProfit é de 50 pips.
3. Calculo seu lucro potencial de acordo com a fórmula PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE);
4. Do cálculo recebo o lucro potencial de $5,00 (0,1*50*1,0).
A posição vai no vermelho e em algum momento mais uma compra em média abre, mas com 0,2 lote
1. Calculo o Breakeven para estas duas posições. A função tem sido usada há muito tempo, como requerido, e não tenho nenhuma reclamação até agora:
//+----------------------------------------------------------------------------+/*
Расчёт уровня БУ для множества по одному инструменту:
сумма лотов = суммарная позиция (СП)
стоимость тика СП = СТ
профит СП = ПСП
Формула расчёта довольно проста:
КП = ПСП / (СТ * СП)
В которой узнаём количество пипс (КП) до уровня БУ относительно текущей цены (ТЦ) символа.
И подставив КП в формулу БУ = ТЦ - КП * Point получаем уровень цены БУ.
В зависимости от направления СП выбирается прибавлять либо отнимать от ТЦ.
*/double PriceWL(int op, int m1, int m2, double &ll) {
double Res, pp, pt, tic, NumPP, Prof=0, SumLot=0.00000001;
int i;
pt =MarketInfo(sy,MODE_POINT);
tic=MarketInfo(sy,MODE_TICKVALUE); // Стоимость тика СТfor (i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i,SELECT_BY_POS)) {
if (OrderSymbol()!=sy) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()==m1 || OrderMagicNumber()==m2) {
Prof+=(OrderProfit()+OrderSwap()+OrderCommission()); // Суммарный профит позиций ПСП
SumLot+=OrderLots(); // Суммарный лот позиций СП
}
}
}
SumLot=MathAbs(NormalizeLot(SumLot));
NumPP=MathAbs(Prof/(tic*SumLot)); // Количество пунктов до уровня бу КПif (op==0) Res=Ask+NumPP*pt;
if (op==1) Res=Bid-NumPP*pt;
ll=SumLot;
return(Res);
}
//+----------------------------------------------------------------------------+
2. Perfeito. Você calculou o nível de breakeven, mas... se você colocar as fichas dessas duas posições, elas fecharão em zero. Está bem, eu acho. Agora preciso somar a este nível da BU tantos pontos quantos forem necessários para obter um lucro total, igual ao previamente calculado - $5.
3. e aqui é onde eu tenho um bloqueio no meu cérebro. O que faço: Tomo $5, divido pelo lote total destas duas posições (0,1 + 0,2 = 0,3), multiplicado pelo TICK_VALUE
Eu tenho 5/(0,3*1,0) = 16,6666 Depois multiplico por Ponto (0,00016) e adiciono ao preço Breakeven.
4. Perfeito. Os gastos são transferidos para lá, mas me parece que o lucro total de dois Baisers fechando neste nível não é igual a US$ 5 - me parece menos. Isto pode ser visto no gráfico de testes. Mostra claramente que quando uma posição fecha, o aumento do saldo é muito maior do que quando múltiplas posições são fechadas no nível de tomada total calculado (você pode ver estes lugares no gráfico pela aparência da linha de equidade sobre eles). A tabela:
Onde eu estou errado?
Eu entendo que você pode imprimir o lucro total, mas... Quero entender onde posso estar errado em meus cálculos, não o valor das variáveis. Eu já os imprimi.
Cavalheiros programadores, favor aconselhar como combinar uma EA com um indicador?
Por exemplo, peguei um simples bot mo_bidir.mq4 que negocia usando seu próprio algoritmo e quero que ele abra negócios usando seu próprio algoritmo, mas depois de 3 sinais de MA
Quero que meu consultor especializado opere com um prazo de 5 minutos e que o indicador dê sinais diários ou de 4 horas, e quero poder mudar os prazos nas configurações do bot.
Olá a todos. Você pode explicar por que a OrderSend não está abrindo uma vaga?
if (NormalizeDouble(Open[0],Norm)>ma && NormalizeDouble(Bid,Norm)<=ma)
{
if (CheckFiltr()>=Filtr)
{
Print (CheckFiltr()+" Buy"); <= Это в журнале есть, значит должна открыться сделка.for (i=0;i>5;i++)
{
res=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Bid-Sl*Point,0,"OpenBuy",Magik,0,Green);
Print ("Проверка Бай "+i); <= Этого в журнале нет.if (res>0) break;
Print (GetLastError()); <= Этого в журнале нет.Sleep (5000);
}
}
}
Estou ficando um pouco cheio de mim mesmo... :) O problema:
1. Há uma posição aberta de 0,1 lote
2. Seu valor TakeProfit é de 50 pips.
3. Calculo seu lucro potencial de acordo com a fórmula PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE);
4. Do cálculo recebo o lucro potencial de $5,00 (0,1*50*1,0).
A posição vai no vermelho e em algum momento mais uma compra em média abre, mas com 0,2 lote
1. Calculo o Breakeven para estas duas posições. A função tem sido usada há muito tempo, como requerido, e não tenho nenhuma reclamação até agora:
2. Perfeito. Você calculou o nível de breakeven, mas... se você colocar as fichas dessas duas posições, elas fecharão em zero. Está bem, eu acho. Agora preciso somar a este nível da BU tantos pontos quantos forem necessários para obter um lucro total, igual ao previamente calculado - $5.
3. e aqui é onde eu tenho um bloqueio no meu cérebro. O que faço: Tomo $5, divido pelo lote total destas duas posições (0,1 + 0,2 = 0,3), multiplicado pelo TICK_VALUE
Eu tenho 5/(0,3*1,0) = 16,6666 Depois multiplico por Ponto (0,00016) e adiciono ao preço Breakeven.
4. Perfeito. As receitas são transferidas para lá, mas me parece que o lucro total de dois Baisers fechando neste nível não é igual a US$ 5 - me parece menos. Isto pode ser visto no gráfico de testes. Mostra claramente que quando uma posição fecha, o aumento do saldo é muito maior do que quando múltiplas posições são fechadas no nível de tomada total calculado (você pode ver estes lugares no gráfico pela aparência da linha de equidade sobre eles). A tabela:
Onde eu estou errado?
Eu entendo que você pode imprimir o lucro total, mas... Quero entender onde posso estar errado em meus cálculos, não o valor das variáveis. Eu já os imprimi.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Na verdade, sim. Talvez seja tarde demais, mas eu não entendo. Esse é essencialmente o lucro em pps. Essa é a distância da abertura ao fechamento. Por que então a expressão está errada?
Estou ficando um pouco cheio de mim mesmo... :) O problema:
1. Há uma posição aberta de 0,1 lote
2. Seu valor TakeProfit é de 50 pips.
3. Calculo seu lucro potencial de acordo com a fórmula PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE);
4. Do cálculo recebo o lucro potencial de $5,00 (0,1*50*1,0).
A posição vai no vermelho e em algum momento mais uma compra em média abre, mas com 0,2 lote
1. Calculo o Breakeven para estas duas posições. A função tem sido usada há muito tempo, como requerido, e não tenho nenhuma reclamação até agora:
2. Perfeito. Você calculou o nível de breakeven, mas... se você colocar as fichas dessas duas posições, elas fecharão em zero. Está bem, eu acho. Agora preciso somar a este nível da BU tantos pontos quantos forem necessários para obter um lucro total, igual ao previamente calculado - $5.
3. e aqui é onde eu tenho um bloqueio no meu cérebro. O que faço: Tomo $5, divido pelo lote total destas duas posições (0,1 + 0,2 = 0,3), multiplicado pelo TICK_VALUE
Eu tenho 5/(0,3*1,0) = 16,6666 Depois multiplico por Ponto (0,00016) e adiciono ao preço Breakeven.
4. Perfeito. Os gastos são transferidos para lá, mas me parece que o lucro total de dois Baisers fechando neste nível não é igual a US$ 5 - me parece menos. Isto pode ser visto no gráfico de testes. Mostra claramente que quando uma posição fecha, o aumento do saldo é muito maior do que quando múltiplas posições são fechadas no nível de tomada total calculado (você pode ver estes lugares no gráfico pela aparência da linha de equidade sobre eles). A tabela:
Onde eu estou errado?
Eu entendo que você pode imprimir o lucro total, mas... Quero entender onde posso estar errado em meus cálculos, não o valor das variáveis. Eu já os imprimi.
Tenho um preço que consiste em 5 dígitos. Exemplo: 1.3221.
Significa 4 dígitos. Significa 4 ou 5 após o ponto decimal. De cinco dígitos, seria, por exemplo, 132210.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Cavalheiros programadores, favor aconselhar como combinar uma EA com um indicador?
Por exemplo, peguei um simples bot mo_bidir.mq4 que negocia usando seu próprio algoritmo e quero que ele abra negócios usando seu próprio algoritmo, mas depois de 3 sinais de MA
Por exemplo nosinal - Três Médias em Movimento:
FastEMA>MediumEMA>SlowEMA (tendência acima) - bot compra
FastEMA<MediumEMA<SlowEMA (tendência down) - bot vende
Inp_Signal_ThreeEMA_FastPeriod = 8;
Inp_Signal_ThreeEMA_MediumPeriod = 38;
Inp_Signal_ThreeEMA_SlowPeriod= 48;
Quero que meu consultor especializado opere com um prazo de 5 minutos e que o indicador dê sinais diários ou de 4 horas, e quero poder mudar os prazos nas configurações do bot.
\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Peço desculpas pela repetição, mas ao menos me diga em que tópico do fórum devo aplicar, ou devo criar um novo tópico?
Eu não sei o que fazer.
Olá a todos. Você pode explicar por que a OrderSend não está abrindo uma vaga?
Estou ficando um pouco cheio de mim mesmo... :) O problema:
1. Há uma posição aberta de 0,1 lote
2. Seu valor TakeProfit é de 50 pips.
3. Calculo seu lucro potencial de acordo com a fórmula PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE);
4. Do cálculo recebo o lucro potencial de $5,00 (0,1*50*1,0).
A posição vai no vermelho e em algum momento mais uma compra em média abre, mas com 0,2 lote
1. Calculo o Breakeven para estas duas posições. A função tem sido usada há muito tempo, como requerido, e não tenho nenhuma reclamação até agora:
2. Perfeito. Você calculou o nível de breakeven, mas... se você colocar as fichas dessas duas posições, elas fecharão em zero. Está bem, eu acho. Agora preciso somar a este nível da BU tantos pontos quantos forem necessários para obter um lucro total, igual ao previamente calculado - $5.
3. e aqui é onde eu tenho um bloqueio no meu cérebro. O que faço: Tomo $5, divido pelo lote total destas duas posições (0,1 + 0,2 = 0,3), multiplicado pelo TICK_VALUE
Eu tenho 5/(0,3*1,0) = 16,6666 Depois multiplico por Ponto (0,00016) e adiciono ao preço Breakeven.
4. Perfeito. As receitas são transferidas para lá, mas me parece que o lucro total de dois Baisers fechando neste nível não é igual a US$ 5 - me parece menos. Isto pode ser visto no gráfico de testes. Mostra claramente que quando uma posição fecha, o aumento do saldo é muito maior do que quando múltiplas posições são fechadas no nível de tomada total calculado (você pode ver estes lugares no gráfico pela aparência da linha de equidade sobre eles). A tabela:
Onde eu estou errado?
Eu entendo que você pode imprimir o lucro total, mas... Quero entender onde posso estar errado em meus cálculos, não o valor das variáveis. Eu já os imprimi.
Peço desculpas, explique qual é o erro aqui. Eu não consigo entender.
mesmo que a posição seja Sell ?