Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1340

 
@Vitaly Muzichenko@Iurii Tokman Grazie mille ragazzi, ha funzionato tutto! Non so cosa farei senza di te. Buona fortuna per quest'anno.
Vitaly Muzichenko
Vitaly Muzichenko
  • www.mql5.com
Профиль трейдера
 

Buona giornata a tutti. Ho un EA che segnala quando la linea di tendenza e la linea orizzontale incrociano un certo colore. Ho deciso di rifarlo in modo che segnali quando la linea di tendenza e la linea orizzontale incrociano un certo stile. Ha funzionato. Ma mi serve per segnalare quando una linea di tendenza attraversa solo il raggio a destra. Capisco che devo aggiungere

OBJPROP_RAY_RIGHT

ma non so dove o come. Grazie in anticipo.
 

Ciao a tutti J. Continuo a segare la macchina del Graal. E ho incontrato una cosa non piacevole come l'errore 130 quando si impostano gli ordini in sospeso. Ma la cosa interessante è che quando si apre con ordini a mercato tutto va bene. Non ci sono fermate sbagliate che appaiono.

Citerò il fatto che ci sono due modi per calcolare lo stop. È possibile utilizzare uno stop fisso in punti o atp.

Se impostiamo uno stop fisso o atp, otteniamo l'errore 130 quando apriamo un ordine Sell Stop in sospeso, ma il Buy Stop in sospeso sembra aprirsi normalmente, anche se non sono sicuro al 100%. Anche se controllo e vedo che anche gli ordini di acquisto pendenti sono aperti con l'errore 130. Ottengo il valore di stop loss in questo modo


extern double atr_sl_period= 14; // ПЕРИОД АТR СТОП ЛОССА

extern   ENUM_TIMEFRAMES   PeriodForWork_sl        =  PERIOD_H4;           // ТФ SL  ПО АТР

void OnTick()
  {
double sl; // стоп лосс ордеров
if(tip_sl==en_po_atr)
     { //ЕСЛИ ТИП СТОП ЛОССА СТОИТ ПО АТР ТО ВЫСЧИТЫВАЕМ ЕГО ИЗ АТР
     //Print("СТОП ПО АТР, ЕГО РАЗМЕР ");
     sl= iATR( NULL,PeriodForWork_sl,atr_sl_period,1);// ПОЛУЧЕНИЕ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССА
      //Print("СТОП ПО АТР, ЕГО РАЗМЕР "+sl);
     }
     else //ИНАЧЕ- ТО ЕСТЬ ЕСЛИ СТОП ЛОСС ФИКСИРОВАННЫЙ В ПУНКТАХ
     {
     //Print("СТОП ЛОС ФИКСИРОВАННЫЙ В ПУНКТАХ");
     sl= razmer_fikc_sl*Point; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТ
     }


   
  }

Tutto è normale quando si apre con ordini a mercato. Apro gli ordini in sospeso in questo modo

OrderSend(Symbol(),OP_SELLSTOP,lot,min_Price,slippages,min_Price+sl , min_Price-tp ,comment_ao_otloj_sell); // ОТКРКЫВВАЕМ ОТЛОЖЕННЫЙ СЕЛ ОРДЕР

OrderSend(Symbol(),OP_BUYSTOP,lot,max_Price,slippages,max_Price-sl,max_Price+tp ,comment_ao_otloj_buy,magik_number,TimeCurrent()+order_life_time); // ОТКРЫВАЕМ ОТЛОЖЕННЫЙ БАЙ ОРДЕР

Per favore, ditemi cosa sto sbagliando e come posso rimediare?

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
DanilaMactep:

Ciao a tutti J. Continuo a segare la macchina del Graal. E ho incontrato una cosa non piacevole come l'errore 130 quando si impostano gli ordini in sospeso. Ma la cosa interessante è che quando si apre con ordini a mercato tutto va bene. Non ci sono fermate sbagliate che appaiono.

Citerò il fatto che ci sono due modi per calcolare lo stop. È possibile utilizzare uno stop fisso in punti o atp.

Se impostiamo uno stop fisso o atp, otteniamo l'errore 130 quando apriamo un ordine Sell Stop in sospeso, ma il Buy Stop in sospeso sembra aprirsi normalmente, anche se non sono sicuro al 100%. Anche se controllo e vedo che anche gli ordini di acquisto pendenti sono aperti con l'errore 130. Ottengo il valore di stop loss in questo modo


Tutto è normale quando si apre con ordini a mercato. Apro gli ordini in sospeso in questo modo

Per favore, ditemi cosa sto facendo di sbagliato e come dovrei risolverlo?

nessuna normalizzazione dei prezzi
nessuna contabilità stop loss

 

DanilaMactep: Получаю значение стоп лосса во таким макаром

Makar, per favore non toccarlo).

DanilaMactep:

Puoi dirmi cosa sto sbagliando e come risolvere il problema?

Prova ad aumentare l'arresto fisso e se l'errore per un arresto fisso scompare, il problema è in MODE_STOPLEVEL

Anche TakeProfit dovrebbe essere controllato

 
DanilaMactep:

Ciao a tutti J. Continuo a segare la macchina del Graal. E ho incontrato una cosa non piacevole come l'errore 130 quando si impostano gli ordini in sospeso. Ma la cosa interessante è che quando si apre con ordini a mercato tutto va bene. Non ci sono fermate sbagliate che appaiono.

Citerò il fatto che ci sono due modi per calcolare lo stop. È possibile utilizzare uno stop fisso in punti o atp.

Se impostiamo uno stop fisso o atp, otteniamo l'errore 130 quando apriamo un ordine Sell Stop in sospeso, ma il Buy Stop in sospeso sembra aprirsi normalmente, anche se non sono sicuro al 100%. Anche se controllo e vedo che anche gli ordini di acquisto pendenti sono aperti con l'errore 130. Ottengo il valore di stop loss in questo modo


Tutto è normale quando si apre con ordini a mercato. Apro gli ordini in sospeso in questo modo

Per favore, per favore, ditemi cosa sto sbagliando e come posso rimediare?

L'errore 130 si verifica non solo quando viene piazzato un ordine stop o take, ma anche quando l'ordine pendente viene piazzato troppo vicino al prezzo corrente. Non lo stop o il take di quell'ordine, ma il prezzo di apertura/impostazione dell'ordine.

 
        if(CopyTicks(Symbol(),ticks,COPY_TICKS_TRADE,0,1)==1)
            start_time=ulong(ticks[0].time_msc);
  

Cosa significa il punto?

 
ascerdfg:

Cosa significa il punto?

È qui che entri in gioco tu.
 
ascerdfg:

Cosa significa un punto?

Strutture e, classi e interfacce
 
Alexey Viktorov:

L'errore 130 si verifica non solo quando viene impostato uno stop o un take, ma anche quando un ordine pendente è impostato troppo vicino al prezzo corrente. Non lo stop o il take di questo ordine, ma il prezzo di apertura/impostazione dell'ordine.

QUANDO SI IMPOSTA UN ORDINE PENDENTE, CALCOLO IL PREZZO COME SEGUE (NON INTERFERISCO CON VOI, ALMENO NON SIETE IL MIO TIPO DA INTERFERIRE;-))

                    int min_bars= iLowest(NULL, // ТЕКУЩИЙ СИМВОЛ
          double min_Price=iHigh(Symbol(),// СИМВОЛ ТЕКУЩЕГО ИНСТРУМЕНТА(НА КОТОРОМ РАБОТАЕТ ГРААЛЬ;-)
          PeriodForWork_pending_orders, // ТФ НА КОТОРОМ АСЧИТЫВАЕМ ЦЕНУ МИНИМУМА
          min_bars//  НА КАКОМ БАРЕ БЫЛ МАКС ТОТ И ПОДСТАВИМ;)
        
          
          ); 

COME FACCIO A CONTROLLARE SE IL VALORE OTTENUTO RIENTRA NELL'INTERVALLO CONSENTITO? NON CAPISCO COSA DOVREI FARE, E COME MI ASSICURO CHE SE IL VALORE CALCOLATO È INFERIORE A QUELLO CONSENTITO, L'ORDINE VERREBBE COMUNQUE APERTO ALLA DISTANZA MINIMA POSSIBILE?

Motivazione: