SOLO VELA / BAR - ¿Cómo catalogar o segregar la vela? - ¡POR FAVOR CORRÍJANME!

 


SOLO VELA - ¿Cómo catalogar o segregar la vela?

¡POR FAVOR CORRÍJANME!



Tenemos velas alcistas y bajistas quiero segregar esto

escomo elpastor. el pastor tiene una granja, un cortijo y tiene ovejas.

cuando es la temporada de afeitar ovejas pastor Sr. JOHN ir a la granja capturado las ovejas y ...

La primera oveja atrapada es demasiado pequeña para afeitarla - John la suelta.

La siguiente oveja es buena Juancoge las tijeras y la oveja está desnuda

La siguiente oveja es buenay tiene una lana grande - Juan toma tijeras GRANDES y la oveja está desnuda

La siguiente oveja esAries- Juan toma el cuchillo yAries es eunuco en este momento


Quiero hacer lo mismo con la vela / barras
Nuestra vela va Bar[0].... esperamos..... ella va, esperamos.... ¡15 minutos (M15) y ahí está! ... ¿qué es? comprobar!

Si tengo Bullisch vela y vela (precio de apertura [1]- precio de cierre [1]) tienen 2 punto demasiado pequeño - dejar ir , no hacemos nada



Si tengo Bullisch vela y vela (precio de apertura [1] - precio de cierre [1]) tienen 4 puntos - a continuación, iniciar el programa

CheckForOpenS1(); iniciar la función de compra si nuestro precio obtiene + 4 puntos por encima de nuestra vela (escenario1)

Si tengo la vela Bullisch y la vela (precio de apertura [1]- precio de cierre [1]) tiene 5 puntos -Esto es una vela muy grande- entonces inicia el programa

CheckForOpenS2(); inicie la función de compra si nuestro precio obtiene + 14 puntos por encima de nuestra vela (escenario2)



Quiero que esta bruja cada vela, quiero iniciar el programa de compra si tengo vela grande, si tengo vela demasiado pequeña voy a estar esperando a la siguiente

Así que ... esto es en el correcto, pero tengo idea :)

Por favor, no escriba ninguna cosa necesaria.

int start() // start program 
   
double bear() // check first candle -mabey is bear? = THIS IS aur NEW function title bear body is in()
   {     // start body
      double A=Open[1];  // stay Open[1] is changeable A
      double B=Close[1];  // stay Open[1] is changeable A    
      double C=A-B;         // result
      return(C);              // take result C and put in to function bear()
   }                              //end body, NOW bear is aur C example 6 or 89 ;212; 1; 2;..;;;.
   
double bull() // check first candle -mabey is bull
   {
      double A=Open[1];   // we use double because euro/usd have point example 1.9865
      double B=Close[1];     
      double C=B-A;
      return(C);
   }

// when we have bull catalog/ segregate  him..
switch(bull())
      { 
         case 1 : break;            // nothing happen
         case 2 : break;            // nothing happen
         case 3 : break;            // nothing happen
         case 4 : CheckForOpenS1(); break; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break; // start CheckForOpenS2() and S3 ....
      }

// when we have bears catalog/segregate him..
switch(bears())
      { 
         case 1 : break;
         case 2 : break;
         case 3 : break;
         case 4 : CheckForOpenY1(); break;// start CheckForOpenY1()- take it and go thrue with this.. we will see want is '...Y1'
         case 5 : CheckForOpenY2(); CheckForOpenY3(); break; // start CheckForOpenY2() and Y3
      }


return(); // exit program wait for new tip, and ower and ower ....
}  // end


 
 

¿Crees que alguna persona que no sea de habla inglesa puede entender tu historia? Yo entiendo a las ovejas y al pastor Mr. John, pero la historia no tiene sentido para mí. (Quizás sea yo... así que lo siento)

¿Podría explicar su problema en un "inglés internacional" utilizando las definiciones generales de trading/mql4?

¿Qué significa esta frase?

<br / translate="no">POR FAVOR, NO ESCRIBAS EL TEMA, esto será unlibro de manopara el resto de la gente
 
kronin:

¿Crees que alguna persona que no sea de habla inglesa puede entender tu historia? Yo entiendo a las ovejas y al pastor Mr. John, pero la historia no tiene sentido para mí. (Quizás sea yo... así que lo siento)

¿Podría explicar su problema en un "inglés internacional" utilizando las definiciones generales de trading/mql4?

¿Qué significa esta frase?

Kronin, probablemente se trata de un error del traductor en línea, que sucede todo el tiempo en el foro.
 

SOLO VELA - ¿Cómo abrir la posición? - debería ser el siguiente tema. Moderador, ¿qué piensas? ¿Puedo?

Implementamos el escenario seleccionado
¿Cómo enviar la orden?

int start() // start program 
{

// We have some function here like "int CalculateCurrentOrders(string symbol)" and  "double LotsOptimized()"
// many different thing, suddenly! we have our "CheckOpen();" 

//--------------------------------

void CheckOpen()      // void - because function return nothing
{                     // start body
   int    res;        // we will use changeable "res" this is "int" value
   if( Bid==Close[1]+4*Point)  // check conditions: Bid or Ask must be 4 Point above a BAR if no - nothing happen if Yes go below
     {               // start body if
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,Open[1]+37*Point,0,"",MAGICMA,0,Red);  // start "res" and "res" is sending message to platform to open position 
                     // what position is in "()" allways must be the same sequence symbol , op_*** , lot size , ...)
      return;        // if "res" do it then retunrn too ... y ... "if". Because "if" is done return too CheckOpen(). Because "CheckOpen()" is done stop and end.
     }               // stop body if

  }                  // stop body function "void CheckOpen()"
  
//-------------------------------- 

Tenemos una orden
Pero, ¿qué debo hacer para abrir dos posiciones en una función?
Tenemosnuestro escenario CheckForOpenS1() en este escenario compramos dos veces si nuestro precio estará en el lugar correcto por supuesto

//--------------------------------  


 
void CheckOpen1()      // define first function
{                     
   int    res;       
   if( Bid==Close[1]+4*Point)  
     {               
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red);  
                     
      return;        
     }               

}   
  
void CheckOpen2()      // define second function
{                     
   int    res;       
   if( Bid==Close[1]+8*Point)  // change 8 Point ( 4 ==> 8 )
     {               
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red);  
                     
      return;        
     }               

}   

//       I DONT KNOW..............

//--------------------------------  / our scenario  
void CheckForOpenS1()= true;      
 
  void CheckOpen1()
  void CheckOpen2()
  
  
//--------------------------------  / OR LIKE THESE
int res;
if ( CheckForOpenS1() == true)
 {
 res= CheckOpen1() CheckOpen2();
 }
 
Wodzuuu:

SOLO VELA - ¿Cómo abrir la posición? - debería ser el siguiente tema. Moderador lo que está usted piensa? puedo?

Implementamos el escenario seleccionado
¿Cómo enviar la orden?

Tenemos una orden
Pero, ¿qué debo hacer para abrir dos posiciones en una función?
Tenemosnuestro escenario CheckForOpenS1() en este escenario Compramos dos veces si nuestro precio estará en el lugar correcto por supuesto

No entiendo muy bien lo que estás preguntando... no te estás expresando muy claramente... o tal vez sea sólo yo.

Sin embargo, este código le causará problemas. . .

if( Bid == Close[1] + 4 * Point)

Lea este hilo:¿Puede el precio != precio?

 

podría de otra manera
como escribir un simple EA con varios escenarios de eventos

fue una vela pequeña - abrir las características 1
fue la vela media - abrir lascaracterísticas 2
fue una vela grande - abrir
lascaracterísticas 3


switch () es apropiado en este punto, creo que

La función 1 abre 1 posición y se asegura de cerrarla
La 2 abre 2 posiciones protegiéndolas y cierra
Las tres abren 2 posiciones pero a un precio diferente ....

cada vez que tenemos una vela , cada vez hay otra función que hace cosas diferentes

que no se puede escribir para mí, pero cualquier consejo....

 

Como prometí, lo he vuelto a mirar, pero sigue sin tener sentido para mí, lo siento.

Esto nunca funcionará:

double bull() // check first candle -mabey is bull
   {
      double A=Open[1];   // we use double because euro/usd have point example 1.9865
      double B=Close[1];     
      double C=B-A;
      return(C);	// <-- C is probably never 1,2,3,4,5.....
   }

// when we have bull catalog/ segregate  him..
switch(bull())		// <-- the expression here is something like 0.00123. None of your case statements will be executed.
      { 
         case 1 : break;            // nothing happen
         case 2 : break;            // nothing happen
         case 3 : break;            // nothing happen
         case 4 : CheckForOpenS1(); break; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1'
         case 5 : CheckForOpenS2(); CheckForOpenS3() break; // start CheckForOpenS2() and S3 ....
      }

Lee aquí sobre cómo usar el interruptor: https://docs.mql4.com/basis/operators/switch

Esto no está nada claro:

void CheckOpen2()      // define second function
{                     
   int    res;       
   if( Bid==Close[1]+8*Point)  // change 8 Point ( 4 ==> 8 )
     {               
      res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red);  
                     
      return;        
     }               

} 

La expresión igual quizás no es deseada, pero ¿qué debería ser?

Si debe leerse como < entonces enviará inmediatamente una orden de VENTA cuando llegue una nueva barra (ya que el precio de apertura de la nueva barra es tal vez < que el precio de cierre de la barra anterior+8*Punto)
Si se lee como > entonces esperará a que el precio se mueva un poco hacia arriba y entonces enviará una orden de VENTA. No entiendo muy bien tu estrategia, por lo que quizás se quiera así.

También podría imaginar que quieres decir:

if(Bid<Close[1]-8*Point)   

¿Estás operando con un broker de 4 dígitos donde 1 Punto es igual a 1 Pip? De lo contrario, el precio debe moverse sólo 0,8 pips lo que probablemente no es lo que quieres (Y el spread podría confundirlo adicionalmente).

Creo que debería revisar su código de nuevo y corregirlo donde pueda. Siéntase libre de hacer más preguntas si tiene alguna específica. Por favor, tenga en cuenta que su estrategia puede funcionar completamente de otra manera, sólo porque un codificador entendió mal lo que usted ha querido decir.

 

Mi estrategia es
sila vela aparece BULL de 4 a 5 puntos, después de la vela ( siempre, bajo cualquier condición) se preparan para enviar dos órdenes de compra ( siel precio alcanza nuestro nivel requerido para comprar uno, y cómo llegar a buy2)

si la vela aparece BULL de 6 a 7 puntos, después de la vela ( siempre, bajo cualquier condición) se preparan para enviar tresórdenes de compra ( siel precio alcanza nuestro nivel requerido para comprar uno, y cómo llegar a buy2y 3)

Tengo un pequeño error en algún lugar de la oferta o pedir por qué EA no funciona.. . (No puedo encontrar este error , pero normalmente EA funciona muy bien para lo que escribí .. compras y cierre), pero muestra mi plan técnico.

HAGO CORREGIR QUE FUNCIONA EN AHORA

Como se ve en la parte inferior se pone muy lleno y , a veces sustituye a los escenarios de EA Bull4 y el escenario se abre Bull6 Bull4 y como me di cuenta de repente cambiar de opinión y terminar el Bull6 Bull6
¿Sepuede simplificar ?

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#define MAGICMA  20050610


//+------------------------------------------------------------------+
//| Calculate open positions    HOW MEANY OF THIS                    |
//+------------------------------------------------------------------+

int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY) buys++;
        }
     }
//---- return orders volume
   return(buys);
  }

//+------------------------------------------------------------------+
//| Calculate candle                                                 |
//+------------------------------------------------------------------+
bool BULL4()
   {
   if(Close[1]-Open[1]>=4*Point && Close[1]-Open[1]<=5*Point)
   return(true);
   } 

bool BULL6()
   {
   if(Close[1]-Open[1]>=6*Point && Close[1]-Open[1]<=7*Point)
   return(true);
   }
      
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
 
void CheckForOpenBULL41()
  {
   int    res;
   if(Bid==Close[1]+3*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.41,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Blue);
      return;
     }
  }
  
void CheckForOpenBULL42()
  {
   int    res;
   if(Ask>OrderOpenPrice()+2*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.42,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Blue);
      return;
     }
  }  
  
void CheckForOpenBULL61()
  {
   int    res;
   if(Bid==Close[1]+4*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.61,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red);
      return;
     }
  }
  
void CheckForOpenBULL62()
  {
   int    res;
   if(Ask>OrderOpenPrice()+2*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.62,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red);
      return;
     }
  }

void CheckForOpenBULL63()
  {
   int    res;
   if(Ask>OrderOpenPrice()+2*Point)  
     {
      res=OrderSend(Symbol(),OP_BUY,0.63,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red);
      return;
     }
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+

void CheckForCloseBULL()
{
   RefreshRates();
   if(OrderOpenPrice()+4*Point< Ask)
   for (int i = OrdersTotal(); i >= 0;i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (OrderSymbol() == Symbol()) 
      {
         bool ticket = true;
         if (OrderType() == OP_BUY) ticket = OrderClose(OrderTicket(),OrderLots(),Bid,1,Black);

      }
   }
} 

  
  
//+------------------------------------------------------------------+
//| Start function                                 |
//+------------------------------------------------------------------+
void start()
  {
   
   if(BULL4()==true && CalculateCurrentOrders(Symbol())==0) CheckForOpenBULL41();
   else                                    CheckForCloseBULL();

   if(CalculateCurrentOrders(Symbol())==1) CheckForOpenBULL42();
   else                                    CheckForCloseBULL();
   
   //---//
   
   if(BULL6()==true && CalculateCurrentOrders(Symbol())==0) CheckForOpenBULL61();
   else                                    CheckForCloseBULL();

   if(CalculateCurrentOrders(Symbol())==1) CheckForOpenBULL62();
   else                                    CheckForCloseBULL();
   
   if(CalculateCurrentOrders(Symbol())==2) CheckForOpenBULL63();
   else                                    CheckForCloseBULL(); 
    
   if(CalculateCurrentOrders(Symbol())==3) CheckForOpenBULL63();
   else                                    CheckForCloseBULL(); 
       
   if(CalculateCurrentOrders(Symbol())==4) CheckForCloseBULL();
  }
//+------------------------------------------------------------------+

 
Wodzuuu:

Mi estrategia es
sila vela aparece BYK de 4 a 5, después de la vela ( siempre, bajo cualquier condición) se preparan para enviar dos órdenes de compra de datos ( siel precio alcanza nuestro nivel requerido para comprar uno, y cómo llegar zkup 2)

si la vela aparece BYK de 6 a 7, después de la vela ( siempre, bajo cualquier condición) se preparan para enviar tres órdenes de compra ( siel precio alcanza nuestro nivel requerido para comprar uno, y cómo llegar a zkup 2 y 3)

Tengo un pequeño error en algún lugar de la oferta o la demanda por qué EA no funciona.. . (No puedo encontrar este error , pero normalmente EA funciona muy bien para lo que escribí .. compras y cierre), pero muestra mi plan técnico.

Como se ve en la parte inferior se pone muy lleno y , a veces sustituye a los escenarios de EA Bull4 y el escenario se abre Bull6 Bull4 y como me di cuenta de repente cambiar de opinión y terminar el Bull6 Bull6
¿Sepuede simplificar ?

¿GRACIAS A LA AYUDA DE LOS MEDIOS DE COMUNICACIÓN?

Esto está mal...

for (int i = OrdersTotal(); i >= 0;i--)

. . las posiciones empiezan en 0, por lo que hay que contar hacia abajo desde OrdersTotal() - 1


Haces esto. . .

void CheckForCloseBull()           // close ALL AT ONCE buy of course
{
   RefreshRates();
   if(  OrderOpenPrice()  > Ask+6*Point)

. . . obtienes elOrderOpenPrice() pero ¿para qué Orden? tendrás múltiples órdenes abiertas. . .



Utiliza la variableres para mantener el valor de retorno de sus llamadas a OrderSend() . . . y ¿qué hace con ella? nada, ¿por qué?

¿Qué son los valores de retorno de las funciones? ¿Cómo los utilizo?

 

Muy buena respuesta RaptorUK


1. problema de res
Estoy estudiando la resolución de EA Moving Average sólo hay 3 veces, todo en función del tiempo, después de que para que no existe.

La primera vez se utiliza para la información "hola vamos a utilizar res"

la segunda vez para enviar el pedido. OrderSend devuelve el número de órdenes, que es nuestra res = 343321, abowe la función 'void CheckForOpen () " res no existe.

pero...
Creo que si el "void CheckForOpen ()" Observar la verdad de este comando OrderSelect de alguna manera traer ese número excepto "void CheckForOpen () " Voy a tratar ..

2. Problema de OrderOpenPrice()

tienestoda la razón, pero esta sintaxis funciona sorprendentemente bien :) Voy a tratar de hacer algo en ese lugar

3. OrdersTotal() - 1 tienestoda la razón ,

4. BYK (POLONIA)= BULL traductor tiene problema

 

Para los que aún no entienden mi EA escriban un cuento: D jejeje


Todos los pasos que hacemos, son las funciones. Ahora estoy escribiendo en un ordenador es una función,veo el programa de televisión es la segunda función, etc.
Ahora vamos a pasar a la cocina ...
Tenemos un libro de cocina, abrir la tabla de contenidos y leer secuencialmente puntos
Enprimer lugar Cómo hacer chuletas de cerdo - poner la carne en un bol, añadir sal, pimienta, pelar las patatas
¡A la izquierda el evento - las características de la derecha , y algunos de tema - no menos fácil!


Después de leer cómo hacer chuletas de cerdocomienzan a hacerlo, para hacer las cosas. Steak obtiene 25 minutos, y como empecé a tener un fin.
Hasido cinco minutos M5 ( cinco minutos más tarde)empezamos a leer el siguiente punto un libro de cocina.
Segundo Cómo hacer una ensalada - Pelar las zanahorias, las cebollas de la cáscara , y otra mierda


Y aquí sucede la magia, porque creó doble, arce (segunda persona). Hacemos esto en chuletas de cerdo y ensalada al mismo tiempo.Empezamos atener en la cocina dos personas en una.

Cuantos más puntos se leen, más personas en la cocina aparece. Las personas en la cocina desaparecerá después de completar sus funciones y lavar los platos.


El evento es velas - cuenta con varias opciones para comprar y vender o cerrar.