Na Onda #: acho que comemorei cedo kkkkkkkk ele rodou legal, porem apos algumas operações começou a dar esse erro nao entende pq funcionou e depois parou tentei normalizar ask e bid mas nao conseguir ta erro
😁😁😁 Beleza... É porque você utiliza Stop Loss = 0.0. Faça as pequenas alterações abaixo na função Check_SL_TP() que eu acredito que corrija:
//+--------------------------------------------------------------------------------------------------------------------+//| Verifica se distância entre o TakeProfit/StopLoss e o preço de fechamento é maior do que SYMBOL_TRADE_STOPS_LEVEL |//+--------------------------------------------------------------------------------------------------------------------+bool Check_SL_TP(ENUM_POSITION_TYPE type, double SL, double TP)
{
//--- Local variablesbool SL_check = false, TP_check = false;
//--- Gets the last price for current symboldouble BID = SymbolInfoDouble(_Symbol, SYMBOL_BID);
double ASK = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
//--- get the SYMBOL_TRADE_STOPS_LEVEL levelint stops_level = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
if(stops_level != 0)
{
PrintFormat("SYMBOL_TRADE_STOPS_LEVEL=%d: StopLoss and TakeProfit must not be nearer than %d points from the closing price", stops_level, stops_level);
}
//--- check only two order typesswitch(type)
{
//--- Buy operationcasePOSITION_TYPE_BUY:
{
//--- check the StopLoss
SL_check = (BID - SL > stops_level * _Point);
if(!SL_check)
{
PrintFormat("For order %s StopLoss=%.5f must be less than %.5f (Bid=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d points)", EnumToString(type), SL, BID - stops_level * _Point, BID, stops_level);
}
//--- check the TakeProfit
TP_check = (TP - BID > stops_level * _Point) || TP == 0.0;
if(!TP_check)
{
PrintFormat("For order %s TakeProfit=%.5f must be greater than %.5f (Bid=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d points)", EnumToString(type), TP, BID + stops_level * _Point, BID, stops_level);
}
//--- return the result of checkingreturn(SL_check && TP_check);
}
//--- Sell operationcasePOSITION_TYPE_SELL:
{
//--- check the StopLoss
SL_check = (SL - ASK > stops_level * _Point) || SL == 0.0;
if(!SL_check)
{
PrintFormat("For order %s StopLoss=%.5f must be greater than %.5f (Ask=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d points)", EnumToString(type), SL, ASK + stops_level * _Point, ASK, stops_level);
}
//--- check the TakeProfit
TP_check = (ASK - TP > stops_level * _Point);
if(!TP_check)
{
PrintFormat("For order %s TakeProfit=%.5f must be less than %.5f (Ask=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d points)", EnumToString(type), TP, ASK - stops_level * _Point, ASK, stops_level);
}
//--- return the result of checkingreturn(TP_check && SL_check);
}
break;
}
//--- Verification succeededreturn(false);
}
Se você considerar essa função/verificação desnecessária no seu caso (B3, stops zerados), pode também removê-la, não sei...
uma duvida, se eu quiser que os indicadores externos icustom nao sejam plotados na tela,comno eu faço, se puder me indicar um artigo pra mim ver, nao achei nada especifico
Na Onda #: uma duvida, se eu quiser que os indicadores externos icustom nao sejam plotados na tela,comno eu faço, se puder me indicar um artigo pra mim ver, nao achei nada especifico desde ja agradeço
A função abaixo, chamada antes de criar os indicadores, oculta os mesmos durante os testes:
tenho o codigo mas nao funcionou, ou coloquei no lugar errado
Acredito que não fez errado, o PLOT_SHOW_DATA é pra ocultar dados da janela de dados. Eu não entendi o que voce quer ocultar no indicador que tu mandou tu poderia ocultar todas as linhas que são plotadas via aba de cores (o que me parece mais facil e simples pro usuário final) e não faz muito sentido ocultar isso em indicador. Se tu quiser ocultar isso num expert que faz uso do indicador, tu so precisa ocultar no testador. Quando o EXPERT é colocado na conta real, os indicadores para aparecerem tem que ser adicionados manualmente com ChartIndicatorAdd.
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.
😁😁😁 Beleza... É porque você utiliza Stop Loss = 0.0. Faça as pequenas alterações abaixo na função Check_SL_TP() que eu acredito que corrija:
Se você considerar essa função/verificação desnecessária no seu caso (B3, stops zerados), pode também removê-la, não sei...
😁😁😁 Beleza... É porque você utiliza Stop Loss = 0.0. Faça as pequenas alterações abaixo na função Check_SL_TP() que eu acredito que corrija:
Se você considerar essa função/verificação desnecessária no seu caso (B3, stops zerados), pode também removê-la, não sei...
funcionou perfeitamente, obrigado
uma duvida, se eu quiser que os indicadores externos icustom nao sejam plotados na tela,comno eu faço, se puder me indicar um artigo pra mim ver, nao achei nada especifico
desde ja agradeço
A função abaixo, chamada antes de criar os indicadores, oculta os mesmos durante os testes:
De nada. 👍
A função abaixo, chamada antes de criar os indicadores, oculta os mesmos durante os testes:
existi um pra conta real?
Se você tiver o código do indicador personalizado, utilize:
Se não tiver o código do indicador, TESTE ChartIndicatorDelete()...
EDIT.1: Retificação da primeira informação acima...
PlotIndexSetInteger(plot_index, PLOT_SHOW_DATA, false);
tenho o codigo mas nao funcionou, ou coloquei no lugar errado
Um exemplo deixando "Plotar?" como parâmetro [esse parâmetro deverá ser informado ao chamar iCustom()]:
tenho o codigo mas nao funcionou, ou coloquei no lugar errado