[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 482
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
Scrivere una funzione bool() per controllare se la differenza tra il prezzo e lo stoploop impostato è maggiore dello StopLoss (da marketinfo)
allora vero altrimenti falso.
Allora prima di aprire un ordine dovresti controllare if(function()) e aprire un ordine.
Perché ne ho bisogno se ho impostato lo stop loss del 30% in più rispetto allo stop loss di questa società di intermediazione?
I punti 2 e 3 sono sbagliati. A destra: Stop Loss e Take Profit per l'acquisto a partire da Ask, Stop Loss e Take Profit per la vendita a partire da Bid.
Il controllo è semplice. Calcolate quale guadagno, se il takeprofit è scattato, otterrete con la vostra variante. Non sarà uguale a TakeProfit in punti. Nella variante proposta, sarà esattamente uguale.
Allora, l'ho modificato come prima e ho ottenuto lo stesso risultato. Ho lasciato solo la normalizzazione del prezzo.
Ma l'errore nel tester rimane e la cosa più interessante è che non ha colpito tutti gli ordini ma alcuni di essi.
Ha l'errore 4107 per 1 ordine su 10 e restituisce gli altri 9 senza errori.
Помогите пожфлуйста с индикаторами: 1-й чтобы не убирал разметку на графике. 2-й чтобы лини старших ТФ были внешними на младших и чтобы можно было задать отоброжение(после того как задаешь отоброжение сразу все нормально пока не перещелкнешь ТФ,после этого все линии младших ТФ на старших)нии младших ТФ на старших)
Perché ne ho bisogno se ho impostato lo Stop Loss del 30% più dello Stop Level nella mia società di intermediazione?
Così l'ho rifatto com'era e il risultato è ancora lo stesso, ho solo lasciato la normalizzazione dei prezzi.
Ma l'errore nel tester è rimasto e la cosa più interessante è che ho errori in alcuni ordini e non in tutti.
Per 1 di 10 ha dato errore 4107, e gli altri 9 sono elaborati senza errori.
Mostrami il codice, diamogli un'occhiata.Народ, у меня проблема, причем никак не могу допетрить в чем дело, особо не пинайте.
Есть стандартный MACD, хочу в индикаторе отметить все пики столбцов (значками), вот код:
Таким образом я нарисовал все экстремумы в индикаторе. Всё ОК, НО!
Когда функцией Print я вывожу значения всех найденых пиков
то вот что выходит:
Я так понимаю что 2147483647 это нули или пустые значения?
Beh, nessuno può aiutare? :)
Beh, nessuno può aiutare? :)
Il problema sembra essere con gli array MAX e MIN.
Li avete collegati ai buffer degli indicatori con SetIndexBuffer() ?
Sì, certo :)
Usate la funzione IndicatorBuffers()?
#property indicator_buffers 4
#property indicator_color1 MediumPurple
#property indicator_color2 MediumPurple
#property indicator_color3 Green
#property indicator_color4 Red
#property indicator_width3 1
#property indicator_width4 1
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
double MMACD1[];
double SMACD1[];
double MAX[];
double MIN[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(2,119);
SetIndexArrow(3,119);
SetIndexDrawBegin(1,SMACD1);
IndicatorDigits(Digits+2);
SetIndexBuffer(0,MMACD1);
SetIndexBuffer(1,SMACD1);
SetIndexBuffer(2,MAX);
SetIndexBuffer(3,MIN);
IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");
return(0);
}
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
MMACD1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
for(i=0; i<limit; i++)
SMACD1[i]=iMAOnArray(MMACD1,Bars,SignalSMA,0,MODE_SMA,i);
for(i=0; i<limit; i++)
{
if(MMACD1[i+1] > MMACD1[i+2] && MMACD1[i+1] > MMACD1[i])
MAX[i+1] = MMACD1[i+1];
if(MMACD1[i+1] < MMACD1[i+2] && MMACD1[i+1] < MMACD1[i])
MIN[i+1] = MMACD1[i+1];
}
for(i=0; i<limit; i++)
{
if (MAX[i+1] != EMPTY_VALUE)
Print(MAX[i+1]);
}
return(0);
}
//+------------------------------------------------------------------+