Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 506

 
que alguien escriba la estructura de una orden limitada
 
Utilizo la señal de Flive, pero a veces quiero cerrar una orden yo mismo. Pero en cuanto lo cierro, se vuelve a abrir. ¿Hay alguna manera de resolver esto?
 
Artur116:
Utilizo la señal de Flive, pero a veces quiero cerrar una orden yo mismo. Pero en cuanto lo cierro, se vuelve a abrir. ¿Hay alguna manera de resolver esto?

Desmarca "Sincronizar posiciones..."
 
Nesradamus:
He asumido que sólo hay dos extremos mensuales, el mínimo y el máximo... Bueno, no importa, al principio tenía un código largo, por eso pedí ayuda... Pero me di cuenta de que me las arreglé para encajarlo en cuatro líneas.

Esto es si en una vela mensual. Por supuesto, habrá iHigh(Symbol(), PERIOD_MN1, BarOfMonth); e iLow(Symbol(), PERIOD_MN1, BarOfMonth);

Y si necesitamos encontrar extremos del precio en un gráfico diario en un mes, seguro que habrá más de uno en al menos 28 barras ;)

 
Zver4991:

otra pregunta sobre la función

cómo hacer que el rectángulo se dibuje hacia adelante en lugar de hacia atrás, por ejemplo, cinco barras hacia adelante a un precio especificado ...... y que no se vuelva a dibujar

El nombre "nombre_del_objeto" debe contener la hora en que fue dibujado. Por ejemplo, "Nombre_del_objeto "+TimeToString(Time[0]); Entonces cada rectángulo tendrá su propio nombre.

Para especificar el desplazamiento a la derecha de la barra cero, añada el número necesario de barras a Time[0], por ejemplo Time[0]+Period()*5*60 (añada cinco barras)

datetime t1=Time[10], t2=Time[0]+Period()*60*5;
SetRectangle(clrBlue,"Прямоугольник"+TimeToString(Time[0]),t1,Low[10],t2,High[0]);
 
#property strict
#include <Indicators\Trend.mqh>
bool ind;
CiMA MA;
extern int pos=1;
extern int sl=40;
extern int tp=70;
datetime time;
datetime time2;
bool trade=false;
bool trade2=false;
int a,b;
int OnInit()
  {
//---
   MA.Create(Symbol(),PERIOD_CURRENT,10,6,MODE_EMA,PRICE_CLOSE);//создал машку
//---
   return(INIT_SUCCEEDED);
   
  }
void OnTick()
  {
//---
  if(IsNewBar()==true)//если новый бар включаемся
     {
     if(buy(pos)==true)//если цена выше МА продолжаем
     {
      if(!ExistPositions(Symbol(),-1,-1,0))//если нету открых ордеров продолжаем
        {

         if(GetTypeLastClosePos(Symbol(),-1)!=OP_BUY)//если тип последней закрытой позиции был не на покупку то тогда только покупаем таким образом я пред остерегаюсь от повторных входов в покупку если цена 
//все ещо выше МА...но почему то не работает открываются и дальше сделки на покупку если ордер закрылся выше МА....ХОТЯ НЕ ДОЛЖО ТАК КАК Я ОГРАНИЧИЛ ПО ТИПУ ПОЗИЦИИ ПОСЛЕДНЮЮ СДЕЛКУ И ОНИ ДОЛЖНЫ ТОЛЬКО 
//       ЧЕРЕДОВАТСЯ И УЖ НИ КАК НЕ ПОВТОРЯТСЯ ПО НЕСКОЛЬКО РАЗ ПОДРЯД
           {
            trade=true;
           }
  if(trade==true)
        {
         OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point);
         trade=false;
        }
}
        }
    
     
if(sell(pos)==true)
{
   if(!ExistPositions(Symbol(),-1,-1,0))
     {

      if(GetTypeLastClosePos(Symbol(),-1)!=OP_SELL)
        {
         trade2=true;
        }

      if(trade2==true)
        {
         OpenPosition(Symbol(),OP_SELL,0.1,Bid+sl*Point,Bid-tp*Point);
         trade=false;
      }
  }}
 }
  }

//возвращает истину если закрытие бара  с указаной позицией выше МА

bool buy(int pos)
  {
   if(iClose(Symbol(),0,pos)>MA.Main(1))
      return true;
   else
      return false;
  }
//+------------------------------------------------------------------+
//| возвращает истину если закрытие бара  с указаной позицией ниже МА
//+------------------------------------------------------------------+
bool sell(int pos)
  {
   if(iClose(Symbol(),0,pos)<MA.Main(1))
      return true;
   else return false;
  }
TODAS LAS FUNCIONES excepto dos condiciones de COMPRA y VENTA fueron tomadas de la rama de Kim...... por favor dígame donde cometí un error...necesito una operación para abrir en una intersección
 

¿Existe alguna manera en mql4 de ocultar algún código de la vista, colapsar el área de código para que se coloque debajo del signo más (+)?

como en sharp #region #endregion, el código colocado entre estas directivas se podrá colapsar.

 
¿No puedo entender qué es lo que está mal? En el tester todo funciona, pero en el real y en el demo, cuando intento abrir una orden, me sale "Error 0". GetLastError() devuelve "0" que significa que no hay error. ¿Qué significa?
 
Leo59:
¿No puedo entender qué es lo que está mal? En el tester todo funciona, pero en el real y en el demo, cuando intento abrir una orden, me sale "Error 0". GetLastError() devuelve "0" que significa que no hay error. ¿Qué significa?

Significa que así es como está escrito en el código, si te molesta, por favor corrígelo.
 
evillive:

Está escrito en el código, así que si te molesta, arréglalo.

¿Qué debo hacer si el pedido no se abre?