Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 506

 
qualcuno scrive la struttura di un ordine limite
 
Uso il segnale Flive, ma a volte voglio chiudere io stesso un ordine. Ma appena lo chiudo, si riapre. C'è un modo per risolvere questo problema?
 
Artur116:
Uso il segnale Flive, ma a volte voglio chiudere io stesso un ordine. Ma appena lo chiudo, si riapre. C'è un modo per risolvere questo problema?

Deselezionare "Sincronizza le posizioni..."
 
Nesradamus:
Ho supposto che ci siano solo due estremi mensili - min e max... Beh, non importa, all'inizio avevo un codice lungo, ecco perché ho chiesto aiuto... Ma mi è venuto in mente che sono riuscito ad inserirlo in quattro righe.

Questo è se su una candela mensile. Naturalmente ci sarà iHigh(Symbol(), PERIOD_MN1, BarOfMonth); e iLow(Symbol(), PERIOD_MN1, BarOfMonth);

E se dobbiamo trovare gli estremi del prezzo su un grafico giornaliero in un mese, ce ne sarà sicuramente più di uno su almeno 28 barre ;)

 
Zver4991:

un'altra domanda sulla funzione

come far disegnare il rettangolo in avanti invece che indietro, per esempio cinque barre in avanti ad un prezzo specificato ...... e non ridisegnarlo

Il nome "object_name" dovrebbe contenere l'ora in cui è stato disegnato. Per esempio, "Object_name "+TimeToString(Time[0]); Poi ogni rettangolo avrà il suo nome.

Per specificare lo spostamento a destra della barra zero, aggiungere il numero richiesto di barre a Time[0], per esempio Time[0]+Period()*5*60 (aggiungere cinque barre)

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;
  }
Tutte le FUNZIONI tranne due condizioni di ACQUISTO e VENDITA sono state prese dal ramo di Kim...... per favore ditemi dove ho sbagliato...ho bisogno di un trade per aprire su un'intersezione
 

C'è un modo in mql4 per nascondere un po' di codice dalla vista, collassare l'area del codice in modo che sia posto sotto il più (+)?

come in sharp #region #endregion, il codice posto tra queste direttive sarà possibile collassare.

 
Non riesco a capire cosa c'è che non va? Nel tester tutto funziona, ma sul reale e sul demo, quando cerco di aprire un ordine, ottengo "Error 0". GetLastError() restituisce "0" che significa nessun errore. Cosa significa?
 
Leo59:
Non riesco a capire cosa c'è che non va? Nel tester funziona tutto, ma sul reale e sul demo, quando cerco di aprire un ordine, ottengo "Error 0". GetLastError() restituisce "0" che significa nessun errore. Cosa significa?

Significa che questo è il modo in cui è scritto nel codice, se ti dà fastidio, per favore correggilo.
 
evillive:

È scritto nel codice, quindi se vi dà fastidio, correggetelo.

Cosa devo fare se l'ordine non si apre?
Motivazione: