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

 
rigonich:

De nuevo 45, en esta formaOrderSelect(LastClosetPoz (),SELECT_BY_TICKET) por defecto selecciona entre las órdenes pendientes y abiertas, y esta orden no está ahí. PonerOrderSelect(LastClosetPoz (),SELECT_BY_TICKET, MODE_HISTORY).


naa....nii...MODEs...sólo funcionan conSELECT_BY_POS. Y el billete en sí, es absolutamente individual, por lo que ni siquiera es necesario especificar dónde está

(termina la respuesta ahí... estaba ultimando la solución)

-------Parámetros:

índice - Índice de pedido o ticket de pedido en función del segundo parámetro.
seleccione - Selección de banderas. Puede ser cualquiera de los siguientes valores:
SELECT_BY_POS - índice en el conjunto de órdenes,
SELECT_BY_TICKET - el índice es el ticket de pedido.
piscina - Índice opcional del conjunto de órdenes. Se utiliza cuando el parámetro seleccionado es SELECT_BY_POS. Puede ser cualquiera de los siguientes valores:
MODE_TRADES (por defecto) - orden seleccionada del pool de negociación (órdenes abiertas y pendientes),
MODE_HISTORY - orden seleccionada del conjunto histórico ( órdenes cerradas y canceladas).
 
lottamer:


noa....nil...mods...sólo funcionan conSELECT_BY_POS. Y el billete en sí mismo es completamente individual, por lo que ni siquiera es necesario especificar dónde está

-------Parámetros:

índice - Índice de pedido o ticket de pedido en función del segundo parámetro.
seleccione - Selección de banderas. Puede ser cualquiera de los siguientes valores:
SELECT_BY_POS - índice en el conjunto de pedidos,
SELECT_BY_TICKET - el índice es el ticket del pedido.
piscina - Índice opcional del conjunto de órdenes. Se utiliza cuando el parámetro seleccionado es SELECT_BY_POS. Puede ser cualquiera de los siguientes valores:
MODE_TRADES (por defecto) - orden seleccionada del pool de negociación (órdenes abiertas y pendientes),
MODE_HISTORY - orden seleccionada del pool histórico (órdenes cerradas y canceladas).


Perdón, me he equivocado, tienes razón, está justo en tu línea if (Print("Stop loss", OrderStopLoss());) Print("Stop loss", OrderStopLoss());; no hay condición, en su lugar se inserta un operador.
 
Desead:

No soy programador, pero a veces escribo yo mismo las cosas más sencillas. Puedes escribir un robot sencillo en cualquier lenguaje y no hay ningún problema. No quiero ejecutar una parte de las funciones como una dll y llamarlas desde μl, sino escribir todo el robot con su propia interfaz sin llamar a Metatrader. He inventado un montón de lenguajes visuales diferentes en los que puedo hacerlo sin mucho esfuerzo.


Ya veo. En el paquete MT, hay ejemplos de cómo escribir dlls en C2C++.

Catálogo: Catálogo_en_el_que_se_encuentran_las_muestras_de_los_expertos. Tómalo y edítalo para adaptarlo a tus necesidades. No es necesario un conocimiento profundo de C++ para trabajar con él. Basta con tener conocimientos de los fundamentos y la sintaxis de C.

Nota: el proyecto debe tener el archivo .def, de lo contrario no se conectará la dll. En el ejemplo es un proyecto como debe ser.
 
xant:

rigonich

подскажите пожалуйста, в какой файл записываются глоб. переменные? Чтобы можно было быстро перебрасывать на другой терминал. 

No lo sé, no lo he encontrado, pero probablemente puedas abrir servicio-->variables globales en la terminal y copiarlas desde ahí, prueba.

Y en general está relacionado con la sincronización de varios terminales, trata de buscar en esta dirección, creo que encontré algo así en este sitio o en artículos, o en kodobase.

 
rigonich:


terminalprofiles\gvariables.dat
 
r772ra:


terminalprofiles\gvariables.dat

Gracias, es cierto, he mirado en casi todas las carpetas pero no se me ha ocurrido mirar en los perfiles.
 
rigonich:

Perdón, me he equivocado, tienes razón, es sólo tu línea if (Print("Stop loss", OrderStopLoss();) Print("Stop loss", OrderStopLoss();); no hay condición, en su lugar se inserta un operador.


Estoy atascado de nuevo... en el último paso...

Los tickets han sido sacados - están funcionando. ahora estoy tratando de usarlos - para sacar elOrderProfit de la posición correspondiente.... imprime ceros...(pero el billete se imprime correctamente)

si elimina==true- lo mismo....

¿hay alguna forma de utilizarOrderSelect sin if?

CUANDO funciona:

if (OrderSelect( Ticket1,SELECT_BY_TICKET)) Print("Stoploss", OrderStopLoss());

imprime el nivel de stop loss.

---------------------------

Tendré que tomar su versión con un bucle común.¡OrdenProfit es claramente reconocido allí!¡Maldición! ¿Cuál es la diferencia? ¿Todo es igual?

 LastClosetPoz();SecLastClosetPoz();   Print ( LastClosetPoz(),"___",SecLastClosetPoz()); 

 

if  (OrderSelect( LastClosetPoz(),SELECT_BY_TICKET)==true) X=OrderProfit();



if  (OrderSelect( SecLastClosetPoz(),SELECT_BY_TICKET)==true) Y=OrderProfit(); Print (X,"+",);

 
 
lottamer:


Estoy atascado de nuevo... en el último paso...

Las entradas han sido sacadas - funcionan. ahora estoy tratando de usarlas - para sacar elOrderProfit de la posición correspondiente.... imprime ceros...(pero los tickets se imprimen correctamente)

si elimina==true- lo mismo....

¿hay alguna forma de utilizarOrderSelect sin if?

CUANDO funciona:

if (OrderSelect( Ticket1,SELECT_BY_TICKET)) Print("Stop loss", OrderStopLoss());

imprime el nivel de stop loss.

---------------------------

Tendré que tomar su versión con un bucle común.¡OrdenProfit es claramente reconocido allí!¡Maldición! ¿Cuál es la diferencia? ¿Todo es igual?

OrderSelect( SecLastClosetPoz(),SELECT_BY_TICKET);
También se puede utilizar de esta manera, si el pedido con el ticket requerido existe, la función lo seleccionará.
 

r772ra

gracias por el consejo

 

¡Buenas noches! Lo siento, creo que ya te he hecho una pregunta en alguna parte. Uno con un takeprofit, y un trailing stop debería funcionar para el otro.

En cuanto uno toma ganancias, un trailing stop empieza a funcionar para el otro. Pues bien, ¡empieza a funcionar inmediatamente cuando se hacen los dos pedidos!

//***************************************   
 
  nahodka=false;
 
 
 if (OrderSelect(tocket, SELECT_BY_TICKET , MODE_HISTORY)) { 
 if (OrderTakeProfit( )-3*Point<profitsell&&OrderTakeProfit( )+3*Point>profitsell) nahodka=true;}
     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if(nahodka){if (OrderSelect(tecket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )>Bid+treylingstop*Point ){ Print ("четвёртаямодифи    " );
 OrderModify(  tecket, OrderOpenPrice(), Bid+treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
  // Модифицируем оставшийся ордер

¿Cómo y qué elige OrderSelect, si el pedido con el ticket no está todavía en el historial?

Razón de la queja: