Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 61
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Espero que haya un valor asignado a la variable Percent en OnInit().
Mi variable Porcentaje está definida por el usuario. OnInit() lo he dejado.
si Lots=0, el probador no abrirá nada
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;
Y aún así, en qué parte del código se establece Porcentaje
¿y qué hace el siguiente comando print("Lotes : ",Lotes); ?
Sin embargo, ¿en qué parte del código está Percent
y ¿qué hace el siguiente comando print("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) // Если бар не новый..
En la quinta línea se establece Percent. El registro muestra: "El número de lotes es 90.0100000001". ¿Tal vez deberíamos añadir NormalizeDouble()?
No hay nada malo en el lote.
Busque un error en la lógica de apertura del pedido.
En estos casos, suelo establecer una condición explícita que abrirá la orden
No hay nada malo en el lote.
Busque un error en la lógica de apertura de la orden.
En estos casos suelo establecer una condición explícita para que la orden se abra
Por favor, ponga un ejemplo con una condición explícita. Si he entendido bien, debería haber una condición en el bucle para la apertura. ¿Verdad?
Dé una orden para abrir una orden al principio del código, justo después de calcular el lote, y asegúrese de que el probador funciona correctamente. Luego puedes volver a colocar todo en su sitio.
La quinta línea especifica el Porcentaje. El registro muestra: "Número de lotes 90.0100000001". ¿Tal vez deberíamos añadir NormalizeDouble()?