Tarea técnica
Caro desenvolvedor, eu estou elaborando um gerenciamento de risco e estou travado em alguns pontos nesse gerenciamento, gostaria de um suporte de um colega programador para me ajudar a desenvolver com a formula que gostaria a logica é a seguinte double MM_Size() // martingale / anti-martingale
{
double SL;
// Assumindo que a lógica para determinar StopSell e StopBuy já foi definida em algum lugar
if (ORDER_TYPE_BUY) {
SL = ATR2[Shiftatrbuystop] * StopBuy; // Stop Loss = Average True Range * fixed value
} else {
SL = ATR4[ShfitStopatrSell] * StopSell; // Stop Loss = Average True Range * fixed value
}
double tickvalue = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_VALUE);
double ticksize = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_SIZE);
double lots = MM_Percent * 1.0 / 100 * AccountInfoDouble(ACCOUNT_BALANCE) / (SL / ticksize * tickvalue);
double MaxLot = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MAX);
double MinLot = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MIN);
ulong ticket = 0;
if ( ORDER_TYPE_BUY) {
ticket = LastBuyOrderTicket();
} else {
ticket = LastSellOrderTicket();
}
if (ticket > 0) {
double lastDealVolume = HistoryDealGetDouble(ticket, DEAL_VOLUME);
double lastDealProfit = HistoryDealGetDouble(ticket, DEAL_PROFIT);
if (lastDealProfit > 0 && !MM_Martingale_RestartProfit) {
lots = lastDealVolume * MM_Martingale_ProfitFactor;
} else if (lastDealProfit < 0 && !MM_Martingale_RestartLoss) {
lots = lastDealVolume * MM_Martingale_LossFactor;
} else if (lastDealProfit == 0) {
lots = lastDealVolume;
}
} else
if(ConsecutivePL(false, MM_Martingale_RestartLosses))
lots = MM_Percent * 1.0 / 100 * AccountInfoDouble(ACCOUNT_BALANCE) / (SL / ticksize * tickvalue);
if(ConsecutivePL(true, MM_Martingale_RestartProfits))
lots = MM_Percent * 1.0 / 100 * AccountInfoDouble(ACCOUNT_BALANCE) / (SL / ticksize * tickvalue);
if(lots > MaxLot) lots = MaxLot;
if(lots < MinLot) lots = MinLot;
return(lots);
} //Quero que ela aplique os stops de maneira correta pois me parece que nao esta sendo calculado corretamente por ter 2 tipos de stops, quero que o martingale seja aplicado somente no tipo de ordem ou seja Buy aplica martingale somente Buy, Sell somente Sell... Reiniciar o loop somente se o profit Atual bateu todas as sequencias de loss de determinado Tipo de ordem
Han respondido
1
Evaluación
Proyectos
0
0%
Arbitraje
1
0%
/
100%
Caducado
0
Libre
2
Evaluación
Proyectos
49
8%
Arbitraje
0
Caducado
0
Libre
3
Evaluación
Proyectos
17
59%
Arbitraje
2
0%
/
100%
Caducado
2
12%
Libre
4
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
Solicitudes similares
ALTERAÇÃO NO CURRENCY SLOPE
30 - 70 USD
I need to modify the CURRENCY indicator to allow viewing the same currency on different timeframes simultaneously, overlaid on the same chart. Insert the same currency multiple times into the indicator. Example: USD D1 USD H4 USD H1 USD M30 USD M15 USD M5 Display all these curves on the same chart, each representing the currency's slope on a different timeframe. Customizable settings for each line, including: Color
Gold MetaLockDay EA
30+ USD
//+------------------------------------------------------------------+ //| Gold MetaLockDay EA (MT5) | //| Meta líquida diária com MIX de entradas (XAUUSD) | //+------------------------------------------------------------------+ #property strict #include <Trade/Trade.mqh> CTrade trade; //======================== INPUTS ========================// input string InpSymbol = ""; //
Preciso de um desenvolvedor com experiência comprovada em MQL5 , especificamente em automação de alertas do MetaTrader 5 com envio automático de mensagens e prints para canal do Telegram . O projeto não é do zero . Já possuo: Código do indicador / lógica em MQL5 Biblioteca de integração com Telegram (API já pronta) O trabalho consiste em ajustar / implementar um Expert Advisor para que, quando um alerta específico
Información sobre el proyecto
Presupuesto
33+ USD