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

 
Маргарита Королёва:

La risposta ufficiale del mio broker (estratto):

"Inostri documenti normativi stabiliscono che forniamo solo il terminale di trading MT4 per il trading con hedge accounting e le operazioni multidirezionali".

Quindi... Una presa è una presa... Sono di nuovo sconvolto :(

...è meglio che vada con le mie amiche a uno striptease, il miorapporto con il forex non sta andando bene ultimamente:(
L'hai letto? E questa è una tendenza.
 
Маргарита Королёва:

Quindi... Una presa è una presa... Mi sento di nuovo a pezzi :(


...e più si scava in MT5, più si incasinano)
iniziare con MT4
 
Маргарита Королёва:

La risposta ufficiale del mio broker (estratto):

"Inostri documenti normativi stabiliscono che forniamo solo il terminale di trading MT4 per il trading con hedge accounting e le operazioni multidirezionali".

Ditemi, per favore, perché avete bisogno di copertura? Il sistema a rete è facile da scambiare, specialmente per lo scalping. C'è un mercato anche per questo. Se il prezzo sale, compro 0,01 lotti. Aumento anche il lotto fino a 0,02. Quando il prezzo scende vendo 0,02. L'acquisto è automaticamente chiuso, il restante 0,01 lotto da vendere. In un movimento la transazione è invertita. Non c'è bisogno di chiudere la posizione. E così via. È veloce e conveniente. In qualsiasi momento c'è una posizione totale, che è conveniente da gestire. Apri tutti gli ordini che vuoi, e la posizione è quella media. Mentre i commercianti avranno problemi a chiudere una grande quantità di posizioni dirette in modo opposto. Per il trading, MT5 è più adatto, mentre per lo studio iniziale del linguaggio è più adatto MQL4. Questo è quello che ti dice il lupo di Rostov con anni di esperienza nel trading e nella programmazione.

Simuliamo la copertura nel nostro bazar cittadino.

Puoi vendere patate a una commerciante per 50 (BID) e comprare da lei per 100 (ASK). Veniamo a comprare un secchio di patate per 100 rubli. E siamo d'accordo che lo restituiremo in un'ora al prezzo di mercato (per 50). Dopo tutto, nel forex, una posizione aperta deve essere chiusa prima o poi con una transazione inversa. Presumiamo che verranno a prendere le patate dalla mensa. E il prezzo aumenterà di tre volte. Poi si vendono a 150 e 50 in più rimangono in tasca. Ma poi arrivano gli agricoltori collettivi con un carico di patate e il prezzo scende (40 e 80) - la tendenza è cambiata. Intelligente sarebbe vendere il nostro secchio per 40 (per vendere il deposito) e dimenticare il Forex. Ma noi copriremo. Vendiamo la nostra patata a un altro commerciante per 40 e concordiamo che tra mezz'ora compreremo la patata al prezzo di mercato (apparentemente per 80) per restituire il primo commerciante. C'è un errore nella descrizione della siepe da qualche parte? Poi correggilo, o fai un altro esempio per dimostrare la copertura.

 
Ricorderò il mio primo stipendio per il resto della mia vita. Ho vissuto in un ostello ed ero libero come un uccello.
Evito ancora l'alcol, e anche allora ero contrario. Ho deciso di darmi qualcosa da mangiare con il mio stipendio, così sono andato al mercato.
Ho incontrato un ragazzo, soprannominato 'Indicator', dal nostro cortile. Ci salutiamo e lui mi dice:
- Prendi uno strumento da me. Te lo do per 100. E tra due settimane, la primavera arriverà finalmente, gli uomini usciranno dai garage,
darai loro lo strumento per 130. Lo avrete per la birra.
Mi è piaciuto il ragionamento dell'indicatore. Ho preso un attrezzo da lui per 100.
La settimana successiva, sono andato di nuovo al mercato per controllare il mio profitto.
Dove l'ultima volta c'era l'Indicatore, ora c'era un uomo chiamato il Mediatore. Egli dice:
- "Abbiamo battuto l'Indicatore. Ha abbassato il prezzo. Prendi un altro strumento, te lo do per 80.
Hai 180 per i due, cioè 90 per ciascuno. Avrai dieci sterline in cambio.
Se sposti il take profit da 130 a 120, venderai anche più velocemente. Con questo ti compri due birre.
Mi è piaciuto anche il ragionamento dell'Oddsmaker. Gli ho preso il secondo attrezzo per 80.
La prossima settimana, corro al mercato per scoprire il profitto. Dice Orediator:
- Prendete altri due attrezzi, ve li darò per 70. Risulta che hai dato 320 per quattro, cioè 80 per ciascuno.
Se sposti il take-profit da 120 a 110 - venderai anche più velocemente. Ne avrete abbastanza per quattro birre.
Ho pensato - si scopre, come se ottengo venti subito indietro, e il profitto sarà più veloce. Ha preso gli strumenti.
Appena li ho messi in tasca, Mihalych si avvicina e dice al mediatore:
- Eccone altri cinque, ne prendete 50 ciascuno?
Il mediatore prende gli strumenti, Mikhalych mette i soldi in tasca e se ne va. Lo raggiungo e gli dico:
- Aspetta, Mikhalych. Alcune persone qui stanno facendo la media, al fine di ottenere profitti più alti in seguito. E tu cosa stai facendo?
E gli ho detto tutto come stanno le cose. Mi ha guardato con rabbia, mi ha anche sputato addosso con rabbia, e ha detto:
- Quindi eri tu che compravi gli strumenti, aumentando il prezzo? Solo che tu hai comprato 4 mila dollari e io ne ho portati 15. Questo è il prezzo che scende!!!
Dove l'hai preso? L'ho preso in prestito dai miei vicini di garage. Non è probabile che li comprino, sperano che li ripaghi.
Si scopre che c'è un'eccedenza di strumenti al bazar, quindi il prezzo sta scendendo. Quando arriva a 20 o almeno a 30,
Li ricomprerò e li restituirò ai miei amici. E la differenza è mia. Naturalmente il prezzo salirà a 60.
Ma non credo che tornerà a 100.
Cosa è successo dopo? È arrivata la nuova tecnologia, quindi ho tenuto gli strumenti come ricordo. Sono stufo di fare la media a vita.
 
Taras Slobodyanik:...e più vi addentrate in MT5, più saranno scombussolati) iniziate con MT4

Per il trading, MT5 con un conto di compensazione è meglio. Per padroneggiare la programmazione, MQL4 è meglio. Poi in una settimana si passa a MQL5. Quindi metti entrambi

 

Voglio impostare un ordine pendente in modo che dopo il tempo uguale al periodo TF l'ordine venga cancellato (sulla candela successiva). Lo sto facendo:

ulong time = TimeCurrent () + GetSecCountFromTF (PERIOD_CURRENT);
G_LastTicket = SendOrder (Symbol (),
                          lot,
                          type,
                          ORDER_TIME_SPECIFIED, // ORDER_TIME_GTC,
                          (datetime)time,
                          NormalizeDouble (priceOpen, Digits ()),
                          NormalizeDouble (priceSL,   Digits ()),
                          NormalizeDouble (priceTP,   Digits ()),
                          Magic_P,
                          comment,
                          FillReturn_P);

//——————————————————————————————————————————————————————————————————————————————
// Установить отложенный ордер, усех: номер тикета, неудача: -1,
// функция НЕ делает нормализацию значений цены и уровней стопов
ulong SendOrder (string                  symbol,     //символ
                 double                  volume,     //объем
                 ENUM_ORDER_TYPE         type,       //тип ордера, ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT
                 ENUM_ORDER_TYPE_TIME    typeTime,   //ORDER_TIME_GTC           - Ордер будет находится в очереди до тех пор, пока не будет снят
                                                     //ORDER_TIME_DAY           - Ордер будет действовать только в течение текущего торгового дня
                                                     //ORDER_TIME_SPECIFIED     - Ордер будет действовать до даты истечения
                                                     //ORDER_TIME_SPECIFIED_DAY - Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.
                 datetime                expTime,    // дата истечения
                 double                  priceOpen,  // уровень цены установки ордера
                 double                  priceSL      = 0.0,  // уровень цены SL
                 double                  priceTP      = 0.0,  // уровень цены TP
                 long                    magic_number = 0,    // уникальный идентификатор
                 string                  comment      = "",   // комментарий
                 ENUM_ORDER_TYPE_FILLING filling = ORDER_FILLING_RETURN) //ORDER_FILLING_FOK - всё или ничего
                                                                         //ORDER_FILLING_IOC - разрешен неполный объем
                                                                         //ORDER_FILLING_RETURN - частичное до полного заполнения
{
  //--- готовим запрос
  MqlTradeRequest request = { 0 }; //торговый запрос
  MqlTradeResult  result  = { 0 }; //результат торгового запроса

  request.symbol       = symbol;               // инструмент
  request.volume       = volume;               // объем
  request.action       = TRADE_ACTION_PENDING; // установка отложенного ордера
  request.type         = type;                 // тип ордера
  request.type_time    = typeTime;             // тип времени истечения ордера
  request.expiration   = expTime;
  request.price        = priceOpen;            // цена для открытия
  request.sl           = priceSL;              // уровень Stop Loss
  request.tp           = priceTP;              // уровень Take Profit
  request.magic        = magic_number;         // уникальный идентификатор
  request.comment      = comment;              // комментарий
  request.type_filling = filling;              // тип заливки ордера

  //--- отправим торговый приказ
  bool success = OrderSend (request, result);
  if(success)
  {
    return ((int)result.order);
  }

  //--- выведем в лог ответ сервера
  Print ("Failed send pending order, comment from server: " + result.comment + ", Retcode: " + (string)result.retcode);

  return (-1);
}
//——————————————————————————————————————————————————————————————————————————————

//——————————————————————————————————————————————————————————————————————————————
// Возвращает количество секунд в указанном ТФ
int GetSecCountFromTF (ENUM_TIMEFRAMES period)
{
  switch(period)
  {
  case PERIOD_M1:
    return (60);
  case PERIOD_M2:
    return (120);
  case PERIOD_M3:
    return (180);
  case PERIOD_M4:
    return (240);
  case PERIOD_M5:
    return (300);
  case PERIOD_M6:
    return (360);
  case PERIOD_M10:
    return (600);
  case PERIOD_M12:
    return (720);
  case PERIOD_M15:
    return (900);
  case PERIOD_M20:
    return (1200);
  case PERIOD_M30:
    return (1800);
  case PERIOD_H1:
    return (3600);
  case PERIOD_H2:
    return (7200);
  case PERIOD_H3:
    return (10800);
  case PERIOD_H4:
    return (14400);
  case PERIOD_H6:
    return (21600);
  case PERIOD_H8:
    return (28800);
  case PERIOD_H12:
    return (43200);
  case PERIOD_D1:
    return (86400);
  case PERIOD_W1:
    return (604800);
  case PERIOD_MN1:
    return (2592000);
  default:
    return (60);
  }
}
//——————————————————————————————————————————————————————————————————————————————

Ma il server restituisce un errore:

2017.04.16 09:48:49.732 Core 1 2017.02.10 05:25:00 Fallito l'invio dell'ordine in sospeso, commento dal server: Scadenza non valida, Retcode: 10022

Cosa sto facendo di sbagliato? Sto controllando nel tester.

 
Andrey Dik:

Voglio impostare un ordine pendente in modo che dopo il tempo uguale al periodo TF l'ordine venga cancellato (sulla candela successiva). Lo sto facendo:

Ma il server restituisce un errore:

2017.04.16 09:48:49.732 Core 1 2017.02.10 05:25:00 Fallito l'invio dell'ordine in sospeso, commento dal server: Scadenza non valida, Retcode: 10022

Cosa sto facendo di sbagliato? Sto controllando nel tester.

Quando stavo facendo la cancellazione degli ordini per il quinto ragazzo, ho avuto lo stesso errore. Forse, il tempo di scadenza non viene utilizzato. Ritiro semplicemente il mio ordine dopo la scadenza - se il tempo corrente è maggiore o uguale al tempo di immissione dell'ordine più PeriodSeconds(NEED_PERIOD_WEEK)*numero di candele.
 
Andrey Dik:

Voglio impostare un ordine pendente in modo che dopo il tempo uguale al periodo TF l'ordine venga cancellato (sulla candela successiva). Lo sto facendo:

Ma il server restituisce un errore:

2017.04.16 09:48:49.732 Core 1 2017.02.10 05:25:00 Fallito l'invio dell'ordine in sospeso, commento dal server: Scadenza non valida, Retcode: 10022

Cosa sto facendo di sbagliato? Sto controllando nel tester.

La data di scadenza più vicina +10 minuti era in mql4. Non so come sia ora, dovrei controllare in mql5.
 
Artyom Trishkin:
Ho anche affrontato un tale errore quando ho avuto a che fare con l'annullamento dell'ordine per un quinto ordine. Forse, il tempo di scadenza dell'ordine non viene utilizzato. Ho appena rimosso l'ordine da solo dopo la scadenza - se il tempo corrente è più o uguale al tempo di immissione dell'ordine più PeriodSeconds(NEED_PERIOD_WEEK)*numero di candele.

Grazie per PeriodSeconds (), ho dimenticato questa funzione.

Alexey Viktorov:
In mql4 la scadenza più vicina era di +10 minuti. Non so come sia ora, dovrei controllare con mql5.

Non voglio cambiarlo con mql5.


Capisco. Dovrò controllare la data dell'ordine e cancellarlo io stesso, non voglio davvero farlo.

 
Per favore, consigliatemi! Come scrivere il codice con questa condizione, se prima della chiusura di 0 candela lasciato 1 sec allora aprire un ordine in una direzione o nell'altra! Sarei sinceramente grato per l'aiuto.
Motivazione: