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
Buon pomeriggio.
Sono ancora nuovo nella programmazione, se qualcuno ha qualche consiglio.
Domanda. Abbiamo uno o più ordini aperti e sappiamo che chiuderanno con un profitto di 20 dollari.
Abbiamo bisogno di sapere a quale prezzo gli ordini chiuderanno con un profitto di 20 dollari.
Calcoliamo il volume totale dei lotti aperti, e poi!
Per favore, consigliatemi come fare.
Forse c'è una funzione pronta?
Grazie in anticipo.
Esempi di utilizzo di DistMarketAndPos().
Perché si dovrebbe avere bisogno di una funzione che determini quanto è lontano il mercato dalla posizione più vicina? Vedo almeno quattro opzioni di base:
Se volete un'implementazione specifica di una di queste opzioni, scrivete qui le vostre richieste. Soddisferò tutte le richieste nell'ambito di ciò che ho elencato sopra.
ZZY-ZY. In allegato c'è un modello per sperimentare la funzione DistMarketAndPos().
CiaoKimIV, la funzione è molto buona, funziona, la capovolgo e funziona anche, ma non riesco a collegare le due metà.
int start()
{
if (DistMarketAndPos()>150)
{
OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,Ask+150*Point);
}
return(0);
}
int DistMarketAndPos(string sy="", int op=OP_BUY, int mn=-1) {
double d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "")<0) p=0.00001; else p=0.01;
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL) {
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return (r);
}
Nuova versione della funzione Message().
Riguardo alle direzioni di uscita Alert e Print (spazi 1 e 3) va notato che sono in grado di emettere il messaggio riga per riga. In altre parole, se c'è un'interruzione di riga nel testo del messaggio - carattere di controllo "\n" allora ogni riga sarà stampata indipendentemente. Prova lo script di prova nell'allegato, penso che ti piacerà :-)
Nuova versione della funzione Message().
Riguardo alle direzioni di uscita Alert e Print (spazi 1 e 3) va notato che sono in grado di emettere il messaggio riga per riga. In altre parole, se c'è un'interruzione di riga nel testo del messaggio - carattere di controllo "\n" allora ogni riga sarà stampata indipendentemente. Prova lo script di prova nell'allegato, penso che ti piacerà :-)
Avete aggiunto un controllo per il livellamento dello stop alla vostra funzione OpenPosition?
No... a che tipo di controllo si riferisce? Bene, diciamo che lo stop and take ha fallito il controllo, cosa fare? Ci sono opzioni:
no... a che tipo di controllo si riferisce? Bene, diciamo che lo stop and take non ha superato il controllo, cosa fate? Ci sono delle opzioni:
Nuova versione della funzioneOpenPosition() nello script di test.
Cosa c'è di nuovo?
1. Quando l'errore 130 Invalid Stops e il valore della variabile NumberOfTry>1 è impostato, la funzione cercherà di regolare i livelli di prezzo StopLoss e TakeProfit ai valori di MODE_STOPLEVEL+MODE_SPREAD relativi a Bid per OP_SELL e Ask per OP_BUY.
Nota:
La variabile globaleNumberOfTry deveessere maggiore di 1 per innescare la correzione dei livelli di prezzo. Questo è dovuto alfatto che il primo tentativo di aprire una posizione rivela l'errore 130 e corregge i livelli di prezzo, mentre il secondo e i successivi tentativi di aprire una posizione con livelli corretti.
Buon pomeriggio.
È possibile integrare la libreria di funzioni utili di KimIV con alcune funzioni semplici come :
1.prezzo aperto, selezionato da alcuni criteri di posizione (simbolo, tipo, dimensione del lotto, numero magico). Questo prezzo può essere memorizzato in variabili globali e utilizzato come un certo livello di prezzo, dal quale l'algoritmo dell'Expert Advisor può essere costruito.
Restituisce un biglietto selezionato secondo alcuni criteri di una posizione o di un ordine (simbolo, tipo, dimensione del lotto, numero magico). Il biglietto è un identificatore importante, può essere usato ovunque e anche come bandiera di esistenza.
Più funzioni semplici ci sono, più facile sarà trovare quelle migliori per voi, senza la paura di fare un errore quando si modificano quelle esistenti.
Grazie per le vostre funzioni.