[¡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 424

 
sergeev >>:

приведите здесь вашу функцию открытия ордеров.

int NuevoOrden(int Cmd,double Lote)

{doble TP=0, TP2=0;

doble SL=0, SL2=0;

doble PR=0;

datetime endtime;


while(!IsTradeAllowed()) Dormir(100);

endtime = TimeCurrent()+4*60*60;


if(Cmd == OP_BUYSTOP)

{

PR=TOP+10*Punto;

PR=NormalizarDoble(PR,2);

if(TakeProfit>0)

{

TP=PR+25*Punto;

}

if(StopLoss>0)

{

SL=PR-30*Punto;

SL=NormalizarDoble(SL,2);

}

}

if(Cmd==OP_SELLSTOP)

{

PR=BOT-7*Punto;

PR=NormalizarDoble(PR,2);

if(TakeProfit>0)

{

TP=PR-25*Punto;

}

if(StopLoss>0)

{

SL=PR+30*Punto;

SL=NormalizarDoble(SL,2);

}

}

si ((TOP-BOT)<115*Punto)

int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,endtime,CLR_NONE);

si no

Print("Gran diferencia entre TOR y BOT: ",(TOP-BOT));

if(tic<0) Print("Error de apertura del pedido: ",GetLastError();


return(tic);

 
sanyooooook >>:

а ордер как закрывается? по стоп лосту или функцией OrderClose()

en el stop loss o en el take profit.

 

Hola a todos... tengo una pregunta... ¿dónde puedo ver un informe de transacciones... total para todo el período de trabajo...?

 
sergeev >>:
В принципе можно искать ордера в истории и отсортировать их, затем узнать два последних закрытия. Но это вам надо пройтись по всем ордерам истории два раза.

используйте OrderHistoryTotal(), MODE_HISTORY, OrderCloseTime()>0, OrderProfit()

Другим вариантом - чтоб не сканировать два раза историю - это запоминание тикетов открывшихся ордеров и потом определения их профита.

¿Cómo se memorizan exactamente los billetes? Y cómo se entiende: para acceder a un billete, hay que seleccionar una orden, y para seleccionarla, hay que conocer el billete...

 
just-me >>:

А как именно запоминать тикеты? И как понимать: чтоб обратиться к тикету - нужно выбрать ордер, а чтоб его выбрать - нужно знать тикет...

no es necesario conocer el billete para seleccionar un pedido

 

Estoy confundido con la función marketinfo y no puedo calcular el valor correcto del spread para un instrumento en la moneda del depósito con un tamaño de lote determinado. ¿Puede sugerir una fórmula correcta? Lo necesito tanto para el spot como para el CFD...

 

Tengo una pregunta para los expertos - ¿es posible hacer una constante, el primer valor del precio recibido cuando inicio el Asesor de Expertos?

Quiero guardar este precio como una constante, para que todo el tiempo que el EA esté funcionando, pueda referirme a él. La única pregunta es: ¿cómo hacerlo? Porque Ask está cambiando constantemente, y no puedo encontrar la función de copia.

 

hacer una variable global o sólo una variable

e insertar esto no en la función start, sino en la función init

int init()
  {
//----
   GlobalVariableSet("Price_Start",Ask);
//----
   return(0);
  }
 
Kesha_k85 >>:

У меня такой вопрос к спецам - есть ли возможность сделать константой, первое полученное значение цены при запуске советника?

Т.е если я запустил советник и в это время цена Ask=1.4444 Я хочу эту цену сохранить как константу, чтобы всё время работы советника можно было к ней орбащаться. Только вот вопрос, как это сделать??? Ведь Ask постоянно меняеться, а функции копирования я нигде не нашёл.


Una variación sobre el tema.


double Price_Start;

int init()
 {
   Price_Start=Ask;
   return(0);
 }


double Price_Start=0;

int start()
 {
   if ( Price_Start<0.001) Price_Start=Ask;
   //....
 }
 
just-me писал(а) >>

¿Cómo se memorizan exactamente los billetes? Y cómo se entiende: para referirse a un billete, hay que seleccionar una orden, y para seleccionarla, hay que conocer el billete...

https://docs.mql4.com/ru/trading/OrderSelect - ver SELECT_BY_POS