![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Tornando alla questione della determinazione di stoploss e takeprofits nell'evento OnTradeTransaction. Ho il seguente log che mostra tutti i campi delle strutture (preso dall'esempio di MetaQuotes), e questo non è più un tester ma un concorso online. Qui abbiamo un acquisto:
E qui si chiude su Take Profit:
L'unica cosa che unisce queste transazioni è il prezzo(il prezzo di chiusura è uguale al prezzo TP). Domanda - è questo il modo di determinare il fatto di TP? Imho, scomodo e ambiguo (se ricordo bene, il prezzo esatto del TP può non avvenire e il TP sarà chiuso all'altro prezzo più vicino).
Buon pomeriggio! Mi scuso in anticipo, forse sono ottuso o non capisco alcune cose ovvie. Sto cercando di usare l'indicatore iMA, cercando di scrivere secondo gli esempi che ho letto.
In generale, cerco di fare così. Dichiaro in cima, al di sopra di tutte le funzioni di EA.
Poi uso una funzione che funzionerà nella funzione OnTick(). Nell'esempio, la funzione stessa è in basso. Infatti, per ora, userò solo l'ultimo valore zero dell'array.
Userò solo l'ultimo valore zero.
Errore 'a_timeframe' - non può convertire enum Owl.mq5 2009 28
Per quanto riguarda questa variabile imino, è nell'istruzione string-type, vedete che brilla di blu...
Scrive l'errore 'a_timeframe' - non può convertire enum Owl.mq5 2009 28
Grazie!!! È lo stesso di double, string o int? Non capisco, scusate, dove devo mettere questo tipo?
Va bene, grazie!
Questo è puramente un bug da tester. Il campo Trans.price_tp in caso di TRADE_TRANSACTION_DEAL_ADD può contenere 0 o qualsiasi schifezza. Il trading online emette tutto correttamente.
Si prega di avvisare perché la linea request.type_filling=ORDER_FILLING_AON; nell'EA contiene l'errore 'ORDER_FILLING_AON' - identificatore non dichiarato cs2011.mq5 127 28 nella versione 697
Si prega di avvisare perché la linea request.type_filling=ORDER_FILLING_AON; nell'EA contiene l'errore 'ORDER_FILLING_AON' - identificatore non dichiarato cs2011.mq5 127 28 nella versione 697
Perché il linguaggio è cambiato da quando l'EA è stato scritto.
mettere request.type_filling=ORDER_FILLING_AON in questa linea;
request.type_filling=ORDER_FILLING_FOK; e sarete felici.
Oppure si può semplicemente mettere 0
request.type_filling=0;
funzionerà anche.
PS o in alternativa (per evitare di dover modificare l'intero EA) si può mettere una patch in cima a tutto
#define ORDER_FILLING_AON ORDER_FILLING_FOK
Questo è solo nel caso in cui ORDER_FILLING_AON sia menzionato più volte.
Per qualche motivo vedo la seguente immagine: quando incollo nel terminale un indicatore dal Navigatore a un grafico, ma il grafico mostra un'area vuota per l'indicatore, l'indicatore stesso non viene visualizzato, ma se apro la lista degli indici del grafico, vi appare con la nota "Debugging". Cos'è questo insetto e come posso affrontarlo?
Brava gente, aiuto!
Prendete il codice più semplice.
#property copyright "Copyright 2011,"
#property link "http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double Vhod;
Vhod=linfunc(15);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
double linfunc(int b) // имя функции и список параметров
{
double a;
while((a/b)<1 && !IsStopped())//---------
{
a=a+1;
}
double f=a+b;
// составной оператор
return(a+b); // возвращаемое значение
}
Lo compiliamo sulla build 687 e otteniamo Vhod=0 nel debugger.
Come lo capite? Allo stesso tempo, a volte ho ottenuto Vhod=30. (strano ma vero).
restituisce qualche sciocchezza...
Cosa sono questi glitch o mi manca qualcosa?