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
Información sobre el proyecto
Presupuesto
33+ USD