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

 
noob1:
Salve. Sto cercando di calcolare lo StopLoss dal minimo e dal massimo della prima barra, dopo aver piazzato un ordine pendente, rispettivamente per comprare e vendere. Ma non ho ottenuto alcun risultato, solo 130 errori, tutto qui. Grazie in anticipo.
È lo stesso biglietto? E la distanza dallo stoploss può essere troppo piccola.
 
simpleton:

Controlla se OrderOpenPrice() è troppo vicino a SL, e se gli stop sono "sul lato destro del prezzo". Potete leggere qui:

I prezzi di StopLoss e TakeProfit non possono essere troppo vicini al mercato. La distanza minima di stop in pip può essere ottenuta utilizzando la funzione MarketInfo() con il parametro MODE_STOPLEVEL. L'errore 130 (ERR_INVALID_STOPS) sarà generato in caso di arresti errati o non normalizzati.

In questo caso, cioè per un ordine pendente, il "mercato" è il suo "prezzo aperto pendente".

L'ho rifatto e sembra funzionare. Grazie.
 
Potete dirmi come scoprire l'indirizzo ip attuale del computer da MT?
 
Heroix:
Puoi dirmi come ottenere l'indirizzo ip attuale del computer da MT?
WebRequest per http://ipecho.net/plain e leggere dal file ricevuto. O WinAPI.
 

Neltester della strategia il comandoMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) Questo succede in situazioni in cui, per esempio, lo strumento è EURUSD e la valuta di saldo è RUR .... e in altre combinazioni. La mia comprensione è che la valuta di equilibrio deve essere la stessa del nome della seconda valuta nella coppia di valute. Altrimenti, restituisce un valore zero (nel tester di strategia), il che rende impossibile eseguire test con le combinazioni desiderate. Come risolvere questo problema?

 
ikatsko:

Neltester della strategia il comandoMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) Questo succede in situazioni in cui, per esempio, lo strumento è EURUSD e la valuta di saldo è RUR .... e in altre combinazioni. La mia comprensione è che la valuta di equilibrio deve essere la stessa del nome della seconda valuta nella coppia di valute. Altrimenti, restituisce un valore zero (nel tester di strategia), il che rende impossibile eseguire test con le combinazioni desiderate. Come risolvere questo problema?

L'evidenziazione non è corretta! Sto calcolando in euro conEURUSD, GBPUSDecc. Solo quando è abilitato, può dare 0 fino a quando il primo dato è ricevuto, ecco perché ho messo una condizioneprima dei calcoli conTICKVALUE che se != 0;

Nel tester,MarketInfo() potrebbe non funzionare, quindi conoscendo il prezzo approssimativo di un tick, lo imposto con la condizione IsTesting() || IsOptimization() || IsVisualMode().

 

Per favore, aiutatemi a creare uno scoop che negozia due coppie allo stesso tempo.

Se sulla prima coppia la variabile sarà così

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

come sarà per il secondo?

Oppure il codice per aprire un trade con il primo carattere sarà

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,verde);

come sarà il codice del secondo simbolo

 
pavlicos:

Per favore, aiutatemi a creare uno scoop che negozia due coppie allo stesso tempo.

Se sulla prima coppia la variabile sarà così

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

come sarà per il secondo?

Oppure il codice per aprire un trade con il primo carattere sarà

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,verde);

come sarà il codice del secondo simbolo

NULL oSymbol() significa una coppia di grafici. Puoi usare la stringa mySymbol = Symbol() per distinguerli, poi puoi usare 2 copie di EA su grafici corrispondenti e assegnare diversi simboli magici per essere sicuro! Buona fortuna!
 
pavlicos:

Per favore aiutatemi a creare un gufo che scambi due coppie simultaneamente.

Se sulla prima coppia la variabile sarà così

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

come sarà per il secondo?

Oppure il codice per aprire un trade con il primo carattere sarà

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,verde);

come sarà il codice del secondo simbolo

// в OnTick()
double open_nzdusd_CUR=GetNormalizeOpenPriceBySymbol("NZDUSD",Period(),0);    // цена открытия текущей свечи NZDUSD
double open_audusd_M15=GetNormalizeOpenPriceBySymbol("AUDUSD",PERIOD_M15,1);  // цена открытия прошлой свечи AUDUSD на M15
//+------------------------------------------------------------------+

// функция вне тела OnTick()
//+------------------------------------------------------------------+
double GetNormalizeOpenPriceBySymbol(string sy, int timeframe, int shift) {
   int digits=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS);
   return(NormalizeDouble(iOpen(sy,timeframe,shift),digits));
}
//+------------------------------------------------------------------+

Con l'apertura, ecco solo il concetto stesso:

string symbol="AUDUSD";
double ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
double bid=SymbolInfoDouble(symbol,SYMBOL_BID);
double pt=SymbolInfoDouble(symbol,SYMBOL_POINT);
int spread=(int)SymbolInfoInteger(symbol,SYMBOL_SPREAD);
int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
int value=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL);
int level=(value==0)?spread*2:value;
//---
double sl_b=(StopLoss==0)?0:NormalizeDouble(fmin(ask-StopLoss*pt,ask-(level+1)*pt),digits);
double tp_b=(TakeProfit==0)?0:NormalizeDouble(fmax(ask+TakeProfit*pt,ask+(level+1)*pt),digits);
ticket_b=OrderSend(symbol,OP_BUY,Lots,ask,3,sl_b,tp_b,"",0,0,clrGreen);
//---
double sl_s=(StopLoss==0)?0:NormalizeDouble(fmax(bid+StopLoss*pt,bid+(level+1)*pt),digits);
double tp_s=(TakeProfit==0)?0:NormalizeDouble(fmin(bid-TakeProfit*pt,bid-(level+1)*pt),digits);
ticket_s=OrderSend(symbol,OP_SELL,Lots,bid,3,sl_s,tp_s,"",0,0,clrRed);

senza controllare i codici di ritorno del server commerciale.

 
Oggi il navigatore nel terminale si è improvvisamente esteso a tutta la larghezza dello schermo, oscurando le carte! Era sempre la stessa larghezza del Market Watch! Cercando e non riuscendo a trovare come farlo tornare alla sua dimensione precedente! Aiuto a chi sa come affrontare questo nuovo fastidio! Grazie!!!