Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Espero que haja um valor atribuído à variável Percentual no OnInit()?
Minha variável percentual é definida pelo usuário. OnInit() Eu o deixei cair.
se Lotes=0, nada será aberto pelo testador
Margin_Percent=AccountFreeMargin()*Percent/100;
Lots=Margin_Percent/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
Lots_Volume=(MathFloor(Lots)+MarketInfo(Symbol(),MODE_LOTSTEP));
if(Lots>Lots_Volume){
Lots=Lots_Volume;
}
else if(Lots<Lots_Volume)
Lots=MathFloor(Lots);
Print("Количество лотов : ",Lots);
return;
E ainda, onde no código está definido Porcentagem
e o que o seguinte comando imprime("Lotes : ",Lotes); ?
Ainda assim, onde no código está o Percentual
e o que o seguinte comando imprime("Número de lotes : ",Lotes); ?
#property version "1.00"
#property strict
//--- input parameters
input int Percent=50;
input int Fast_EMA_Period=12;
input int Slow_EMA_Period=25;
input int Signal_Period=9;
input double Step_PSAR=0.02;
input double Maximum_PSAR=0.2;
input int MAGICNUMBER=413;
static datetime New_Time;// Время текущего бара
double Margin_Percent; //Используемые средства для открытия ордеров
double Lots;//Определение общего количества лотов
double Lots_Volume;
double MacdCurrent;//Параметры MACD основной линии текущего бара
double MacdPrevious1;//Параметры MACD основной линии предыдущего бара
double MacdPrevious2;//Параметры MACD основной линии со смещением на 2 бара
double StopLoss;//Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара
double Previous_StopLoss;//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
double CurrentPSAR;//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
bool New_Bar=false; // Флаг нового бара
int ticket,total,cnt;
//---------------------------------------------------------------------------
New_Time=TimeCurrent();
if(Time[0]==New_Time) // Сравниваем время
New_Bar=true; // Поймался новый бар
else if(New_Bar==false) // Если бар не новый..
Na quinta linha, o percentual está definido. O registro mostra: "O número de lotes é 90.0100000001". Talvez devêssemos acrescentar NormalizeDouble()?
Não há nada de errado com o lote.
Procure por um erro na lógica de abertura da ordem.
Nesses casos, eu geralmente estabeleço uma condição explícita que abrirá o pedido
Não há nada de errado com o lote.
Procure por um erro na lógica de abertura da ordem.
Normalmente, nesses casos, eu estabeleço uma condição explícita de que a ordem será aberta
Por favor, dê um exemplo com uma condição explícita. Se entendi corretamente, deveria haver uma condição no laço para a abertura. Certo?
Dê um comando para abrir uma ordem no início do código, logo após o cálculo do lote, e certifique-se de que o testador está funcionando corretamente. Então você pode colocar tudo de volta no lugar.
A quinta linha especifica Porcentagem. O registro exibe: "Número de lotes 90.0100000001". Talvez devêssemos acrescentar NormalizeDouble()?