[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 482

 
Urain писал(а) >>

Schreiben Sie eine boolsche Funktion(), die prüft, ob die Differenz zwischen dem Kurs und dem gesetzten Stoploop größer ist als der StopLoss (aus marketinfo)

dann true sonst false.

Dann sollten Sie vor dem Eröffnen einer Bestellung if(function()) prüfen und eine Bestellung eröffnen.


Warum brauche ich es, wenn ich den Stop-Loss um 30 % höher ansetze als den Stop-Loss bei dieser Brokerfirma?

khorosh schrieb >>

Die Punkte 2 und 3 sind falsch. Rechts: Stop Loss und Take Profit für Kauf ab Ask, Stop Loss und Take Profit für Verkauf ab Bid.
Die Prüfung ist einfach. Berechnen Sie den Gewinn, den Sie mit Ihrer Variante erzielen, wenn die Gewinnmitnahme ausgelöst wird. Er wird nicht gleich dem TakeProfit in Punkten sein. In der vorgeschlagenen Variante wird sie genau gleich sein.


Ich habe es also wie zuvor geändert und das gleiche Ergebnis erhalten, nur die Preisnormalisierung habe ich gelassen.
Der Fehler im Prüfgerät bleibt jedoch bestehen, und das Interessanteste ist, dass er sich nicht für alle Bestellungen, sondern nur für einige von ihnen wiederholt.
Bei 1 von 10 Aufträgen tritt der Fehler 4107 auf, die anderen 9 werden ohne Fehler zurückgegeben.

 

Помогите пожфлуйста с индикаторами: 1-й чтобы не убирал разметку на графике. 2-й чтобы лини старших ТФ были внешними на младших и чтобы можно было задать отоброжение(после того как задаешь отоброжение сразу все нормально пока не перещелкнешь ТФ,после этого все линии младших ТФ на старших)нии младших ТФ на старших)

 
Ich vergaß...
Dateien:
macd.rar  7 kb
 
2
Dateien:
multi.rar  9 kb
 
baltik писал(а) >>


Warum brauche ich es, wenn ich den Stop Loss um 30 % höher ansetze als den Stop Level in meiner Brokerfirma?


Also habe ich es wieder so gemacht, wie es war, und das Ergebnis ist immer noch das gleiche, ich habe nur die Preisnormalisierung gelassen.
Das Interessanteste ist jedoch, dass ich in mehreren Aufträgen Fehler habe, aber nicht in allen
Bei 1 von 10 gab es die Fehlermeldung 4107, die anderen 9 wurden ohne Fehler verarbeitet.


Zeigen Sie mir den Code, lassen Sie uns einen Blick darauf werfen.
 
Noterday >>:
Народ, у меня проблема, причем никак не могу допетрить в чем дело, особо не пинайте.
Есть стандартный MACD, хочу в индикаторе отметить все пики столбцов (значками), вот код:
Таким образом я нарисовал все экстремумы в индикаторе. Всё ОК, НО!
Когда функцией Print я вывожу значения всех найденых пиков
то вот что выходит:
Я так понимаю что 2147483647 это нули или пустые значения?

Kann denn niemand helfen? :)

 
Noterday писал(а) >>

Kann denn niemand helfen? :)


Das Problem scheint bei den MAX- und MIN-Arrays zu liegen.
Haben Sie diese mit den Indikatorpuffern mit SetIndexBuffer() verknüpft?

 
Ja, natürlich :)
 
Noterday писал(а) >>
Ja, natürlich :)


Verwenden Sie die Funktion IndicatorBuffers()?

 
Hier ist der vollständige Code:
#property indicator_separate_window
#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);
}
//+------------------------------------------------------------------+