[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 242

 

Me encuentro con un problema con la cláusula, ¿pueden decirme cómo implementar la condición CCI en la función?

Debe establecerse una condición y la orden debe cerrarse en el nivel de beneficio de 10pp.

1) Si el CCI está mirando hacia abajo, en el nivel de beneficio de 10pp cerramos una orden de compra.

2) Vender - similar.

extern bool ClosePips   = true;//использовать закрытие ордера при профите 10пп по условиям ССИ
extern double profit    = 10.0;//профит по клозе

int start(){
double cci_0 = iCCI(NULL, 0, 14, PRICE_CLOSE, 0);;
double cci_1 = iCCI(NULL, 0, 14, PRICE_CLOSE, 1);;

if ( ClosePips){
int slip=3;
for (int trade2 = OrdersTotal() - 1; trade2 >= 0; trade2--) {
   OrderSelect( trade2, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol() == Symbol()) {
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
   if ((OrderType() == OP_BUY)&&( cci_0< cci_1 что сюда вписать???)) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
   if ((OrderType() == OP_SELL)&&( cci_0> cci_1 что сюда вписать???)) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
   }Sleep(1000);}}}
будет ли это корректным если прописать вот так?
if ((OrderType() == OP_BUY)&&( cci_0< cci_1 && Bid - OrderOpenPrice()<=Point* profit ))

 
Alive писал(а) >>
Para algunos símbolos, por ejemplo EUR/USD, las cotizaciones tienen 5 decimales. Sin embargo, mis variables de entorno tienen valores de sólo 4 decimales. ¿Cómo puedo obtener el valor completo de las variables de entorno?

Y cómo los miraste. Print() siempre produce hasta 4 caracteres. Es preferible utilizar DoubleToStr();

 
Martingeil >> :

Me he encontrado con el problema del bloqueo del CCI, ¿sabéis cómo implementar la condición del CCI en la función?

Debe establecerse una condición y la orden debe cerrarse en el nivel de beneficio de 10pp.

1) si el CCI está mirando hacia abajo, en el nivel de beneficio de 10pp cerramos una orden de compra.

2) Vender - de forma similar.



Tienes que hacer esto

if (OrderType()==OP_BUY && cci_0< cci_1 && Bid-OrderOpenPrice()>=Point* profit)
 
MrSoros >> :

Así es como tiene que ser.


Gracias. Eso es todo si lo hago bien, no me estoy metiendo con los carteles, ¿verdad?

extern bool ClosePips   = true;//использовать закрытие ордера при профите 10пп по условиям ССИ

int start(){
double cci_0 = iCCI(NULL, 0, 14, PRICE_CLOSE, 0);;
double cci_1 = iCCI(NULL, 0, 14, PRICE_CLOSE, 1);;

if ( ClosePips){
int slip=3;
int profit=10;
for (int trade2 = OrdersTotal() - 1; trade2 >= 0; trade2--) {
   OrderSelect( trade2, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol() == Symbol()) {
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
   if (OrderType() == OP_BUY && cci_0< cci_1 && Bid-OrderOpenPrice() >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
   if (OrderType() == OP_SELL && cci_0> cci_1 && OrderOpenPrice() - Ask >= Point* profit) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
   }Sleep(1000);}}}
 
Martingeil >> :

Gracias. Si lo hago bien, ¿hay algún problema con los carteles?


Las señales son correctas.

La idea en sí (cierre de la CCI), desde mi punto de vista - no ahty....

Ya he pasado por esto antes...

Pero es una cuestión de estrategia.

Hay tantos operadores como estrategias...

 

Me podéis decir cómo escribir el operador correctamente, algo con " o" no funciona, compra donde no debe.

Gracias.
if (
   {( ma1> ma2 && ma1> ma3  && Open[1]> ma1)} || 
   {( ma2> ma1 && ma2> ma3  && Open[1]> ma1)} ||
   {( ma3> ma1 && ma3> ma2  && Open[1]> ma1)}
   )
    OpenBuy();

ну и т. д.


 
Elimina las llaves, son innecesarias. Me pregunto cómo se compiló en primer lugar.
 
granit77 >> :
Elimine los corchetes, son innecesarios. Me pregunto cómo se compiló en absoluto?

Lo he compilado de las dos maneras y sigue sin funcionar.

(Por extraño que parezca, se compiló =))

 
costy_ >> :

He compilado de las dos maneras y sigue sin funcionar.

if (( ma1> ma2 && ma1> ma3  && Open[1]> ma1) || 
    ( ma2> ma1 && ma2> ma3  && Open[1]> ma1) ||
    ( ma3> ma1 && ma3> ma2  && Open[1]> ma1)
   )
    OpenBuy();

- Esa es una buena lógica.

pregunta: ¿son correctas las condiciones en sí mismas?

 
Muestra lo que es ma1...ma3 y describe la lógica con palabras. Por la mañana, alguien estará deseando corregirlo :))