Roger: Durante questo minuto, l'Expert Advisor aprirà fino a quaranta ordini.
E se il primo non si apre? Aspettare il prossimo segnale per un'ora? Va bene:
C'è un segnale --> Controlla se c'è un ordine/posizione impostato/aperto su questa candela, non c'è --> impostato/aperto, c'è --> allora non c'è bisogno di altro.
Ciao amici. Potete per favore dirmi come ottenere il valore del colore dell 'indicatore dalla candela precedente e scriverlo in una variabile, per esempio se è rosso allora doppio col =1, se è giallo allora 2, se è verde allora 3. Ho provato diverse varianti, ma non ha funzionato. Capisco che il valore del colore dipende dalla disponibilità di unità nel buffer, ma per qualche motivo non riesco a ottenere esattamente l'ultimo valore fisso, cioè la candela attiva, cambia costantemente colore con l'apparizione di una nuova candela precedente chiude l'ultimo colore agente. Come faccio a saperlo?)
#property indicator_separate_window#property indicator_minimum 0#property indicator_maximum 1#property indicator_buffers 3#property indicator_color1 DarkGreen#property indicator_color2 Crimson#property indicator_color3 Yellow//---- indicator parameters externint RSI=8;
externint valeur1=55;
externint valeur2=45;
//---- indicator buffersdouble ExtBuffer1[];
double ExtBuffer2[];
double ExtBuffer3[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- drawing settings
SetIndexStyle (0,DRAW_HISTOGRAM, EMPTY,4,DarkGreen);
SetIndexBuffer(0,ExtBuffer1);
SetIndexStyle (1,DRAW_HISTOGRAM, EMPTY,4,Crimson);
SetIndexBuffer(1,ExtBuffer2);
SetIndexStyle (2,DRAW_HISTOGRAM, EMPTY,4,Yellow);
SetIndexBuffer(2,ExtBuffer3);
//---- names
IndicatorShortName("RSI above/under 45/55");
SetIndexLabel(0,"RSI"+RSI +" is above 55");
SetIndexLabel(1,"RSI"+RSI +" is under 45");
SetIndexLabel(2,"RSI is in the mid zone ");
//---- initialization donereturn(0);
}
//+------------------------------------------------------------------+//| Moving Averages |//+------------------------------------------------------------------+int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1st bufferfor(int i=0; i<limit; i++)
if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)<=valeur2)
{
ExtBuffer2[i]=1;
}
elseif (iRSI(NULL,0,RSI,PRICE_CLOSE,i)>=valeur1)
{
ExtBuffer1[i]=1;
}
else
ExtBuffer3[i]=1;
return(0);
}
Ciao amici. Potete dirmi per favore come ottenere il valore del colore dell'indicatore dalla candela precedente e scriverlo in una variabile, per esempio se è rosso allora doppio col =1, se è giallo allora 2, se è verde allora 3. Ho provato diverse varianti, ma non ha funzionato. Capisco che il valore del colore dipende dalla disponibilità di unità nel buffer, ma per qualche motivo non riesco a ottenere esattamente l'ultimo valore fisso, cioè la candela attiva, cambia costantemente colore con l'apparizione di una nuova candela precedente chiude l'ultimo colore agente. Come faccio a saperlo?)
int col;
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1st bufferfor(int i=0; i<limit; i++)
if (iRSI(NULL,0,RSI,PRICE_CLOSE,i)<=valeur2)
{
ExtBuffer2[i]=1;if(i=1)col =1;return;
}
elseif (iRSI(NULL,0,RSI,PRICE_CLOSE,i)>=valeur1)
{
ExtBuffer1[i]=1;if(i=1)col =3;return;
}
else
{
ExtBuffer3[i]=1;
if(i=1)col =2;
}
return(0);
}
così - se i colori con i numeri non sono mescolati
Tutto è puramente sulla mia ipotesi e solo presumibilmente:
int start() {
Comment(Info()); // Вывод какой-то информации на экранint KOL_BUY = order_total(0); // Подсчёт количества Buy-позицийint KOL_SELL = order_total(1); // Подсчёт количества Sell-позицийdouble l;
if (order_total()==0) { // Если количество ордеров равно нулю
open(0,Lot,0,TP); // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
open(1,Lot,0,TP); // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
}
if (KOL_BUY==0 && KOL_SELL!=0) { // Если нет Buy и есть Sell
open(0,Lot,0,TP); // Открываем Buy лотом Lot скорее всего без стопа, но с тейком
l=last_trade(1); // Берём лот прошлой Sell
open(1,l,0,0); // Открываем Sell лотом прошлой Sell скорее всего без стопа и тейка
modify_orders(1); // Что-то модифицируем в Sell (в какой и что - не понятно)
}
if (KOL_BUY!=0 && KOL_SELL==0) { // Если нет Sell и есть Buy
open(1,Lot,0,TP); // Открываем Sell лотом Lot скорее всего без стопа, но с тейком
l=last_trade(0); // Берём лот прошлой Buy
open(0,l,0,0); // Открываем Buy лотом прошлой Buy скорее всего без стопа и тейка
modify_orders(0); // Что-то модифицируем в Buy (в какой и что - не понятно)
}
return(0); // Выход из start()
}
Durante questo minuto, l'Expert Advisor aprirà fino a quaranta ordini.
E se il primo non si apre? Aspettare il prossimo segnale per un'ora? Va bene:
C'è un segnale --> Controlla se c'è un ordine/posizione impostato/aperto su questa candela, non c'è --> impostato/aperto, c'è --> allora non c'è bisogno di altro.
Questo è il modo per controllare... il numero di ordini o solo la prima chiamata alla funzione...
Quindi c'è più di una linea come la tua.
extern int SecondsAfterTheBar = 0; int start(){ ... if(NewBar() == TRUE){ ... } return(0); } bool NewBar(){ RefreshRates(); static bool initial = FALSE; static datetime stat_dtime = 0; if ((TimeCurrent() - stat_dtime >= Time[0] - Time[1] + SecondsAfterTheBar) == TRUE){ stat_dtime = Time[0]; if (initial == TRUE){ return(TRUE); }else{ initial = TRUE; } } return(FALSE); }Probabilmente sono arrivato troppo tardi, ma chiunque può comunque usare la mia soluzione:
Ovviamente sono arrivato troppo tardi, ma la mia soluzione potrebbe comunque essere utile a qualcuno:
Grazie. Più universalmente se
bool NewBar( datetime SecondsAfterTheBar = 0 )
Poi potete specificare il ritardo in secondi quando lo chiamate.
Ciao amici. Potete per favore dirmi come ottenere il valore del colore dell 'indicatore dalla candela precedente e scriverlo in una variabile, per esempio se è rosso allora doppio col =1, se è giallo allora 2, se è verde allora 3. Ho provato diverse varianti, ma non ha funzionato. Capisco che il valore del colore dipende dalla disponibilità di unità nel buffer, ma per qualche motivo non riesco a ottenere esattamente l'ultimo valore fisso, cioè la candela attiva, cambia costantemente colore con l'apparizione di una nuova candela precedente chiude l'ultimo colore agente. Come faccio a saperlo?)
questo colore:
Grazie per la risposta.
Ciao amici. Potete dirmi per favore come ottenere il valore del colore dell'indicatore dalla candela precedente e scriverlo in una variabile, per esempio se è rosso allora doppio col =1, se è giallo allora 2, se è verde allora 3. Ho provato diverse varianti, ma non ha funzionato. Capisco che il valore del colore dipende dalla disponibilità di unità nel buffer, ma per qualche motivo non riesco a ottenere esattamente l'ultimo valore fisso, cioè la candela attiva, cambia costantemente colore con l'apparizione di una nuova candela precedente chiude l'ultimo colore agente. Come faccio a saperlo?)
È una condizione per aprire gli ordini? Ho capito bene?
È una condizione per aprire gli ordini? Ho capito bene?
Questa condizione è per tutto ciò di cui avete bisogno, perché possiamo solo indovinare cosa fanno queste funzioni definite dall'utente dai loro nomi
Ciao a tutti... Potete dirmi cosa dice questo?
int start()
...
ritorno(0);
Tutto è puramente sulla mia ipotesi e solo presumibilmente: