[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 19
Hilfe Skript zwicken, dass würde bedeuten, öffnen Sie ein Geschäft sofort, zum aktuellen Marktpreis. A chet, ich bin schon beschwipst, dass der Abstand von den Fischen in 5 Pips nicht ausreicht, und so wäre ich zumindest mit einer Ablenkung im Swap.
Index des aus dem Indikatorpuffer empfangenen Wertes (Verschiebung relativ zum aktuellen Takt um die angegebene Anzahl von Perioden zurück).
Im Indikator Fraktale. Wenn ich richtig denke, zeigt der Indikator den Extremwert unter fünf Balken an, unter der Bedingung, dass die Maxima der zwei vorhergehenden und der zwei folgenden Balken (im Falle eines Fraktals nach oben) kleiner sind (obwohl das "Vögelchen" eines Fraktals auch dann auf dem Chart angezeigt wird, wenn das Extremum des ganz linken Balkens dieser fünf = Extremum ...... und nicht kleiner als dieses ist). Warum also umschalten? Was wird angezeigt, wenn die Verschiebung nicht gleich 3, sondern gleich 2 oder 5 ist?
Ich habe diesen Code erstellt, um den Markt nach dem ersten Fraktal Break nach dem MA Break zu betreten. Im Test werden jedoch nicht überall Geschäfte geöffnet, obwohl dies eigentlich vorgesehen ist. Ich verstehe nicht, was los ist? Im realen Modus (bei der Überprüfung auf M1 kann ich den Fehler nicht finden).
externint Period_MA = 5, // Период расчётной МА
PERIOD=1, // Период текущего графика (таймфрейм)
MODE=3, // Метод усреднения из методов скользящего среднего
PRICE_TYPE=0, // Используемая цена из ценовых констант
Прибыль=10,
Ограничение=55;
double
upfractal,
dwfractal,
SL[10001]={0,,10000},
TP[10001]={0,,10000};
bool Двверх=false,
Дввниз=false,
Сделкавверх=false,
Сделкавниз=false;
int A, // Переменная массива вверх
B, // Переменная массива вниз
BarTime, // Время текущего бара
ticketup, // Ордер вверх
ticketdown, // Ордер вниз
Tвверх, // Время сделки вверх
Tвниз; // Время сделки вниз;color вверх = SpringGreen, // Цвет сделки вверх
вниз = Red; // Цвет сделки вниз int start()
{
string Symb=Symbol(); // Финанс. инструментdouble Lot=0.01; // Лотif(BarTime!=Time[0]) // Условие для того, чтобы программа считала только на начале бара, а не на каждом тике
{
double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
double MA_4 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 4);
double MA_5 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 5);
double MA_6 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 6);
double MA_7 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 7);
double MA_8 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 8);
//--------------------------------------------------------------------if(NormalizeDouble(MA_8,Digits)>NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_7,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_6,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_5,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_3,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_4,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_2,Digits)<NormalizeDouble(MA_1,Digits)) // Перелом вверх
{
Двверх=true;
Alert("Двверх");
Дввниз=false;
Сделкавниз=false;
dwfractal=0;
upfractal=0;
}
if(Двверх==true)
{
upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3);
Alert("upfractal вначале = ",upfractal);
}
if(NormalizeDouble(MA_8,Digits)<NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_7,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_6,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_5,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_3,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_4,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_2,Digits)>NormalizeDouble(MA_1,Digits)) // Перелом вниз
{
Дввниз=true;
Двверх=false;
Alert("Дввниз");
Сделкавверх=false;
upfractal=0;
dwfractal=0;
}
if(Дввниз==true)
{
dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3);
Alert("dwfractal вначале = ",dwfractal);
}
BarTime=Time[0];
}else// На каждый тик
{
Alert("upfractal на тиках = ",upfractal,", Bid = ", Bid);
if (Двверх==true && upfractal !=0 && Bid > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
{
Alert("upfractal = ",upfractal, ", Ask = ",Ask);
Tвверх=Time[0];
while(true) // Цикл открытия орд.
{
A++;
SL[A]=Bid-Ограничение*Point;
TP[A]=Bid+7*Point+Прибыль*Point;
ticketup=OrderSend(Symb, OP_BUY, Lot, Ask,0, SL[A], TP[A],NULL,A,0,вверх); // Ордер вверхint Error=GetLastError();
switch(Error) // Преодолимые ошибки
{
case6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
RefreshRates(); // Обновим данныеSleep(1); // Задержка в цикле до нового тикаcontinue; // На след. итерацию
}
break; // Выход из цикла
}
Сделкавверх=true;
}
Alert("dwfractal на тиках = ",dwfractal,", Bid = ", Bid);
if (Дввниз==true && dwfractal !=0 && Bid < NormalizeDouble(dwfractal-1*Point,Digits) && Tвниз!=Time[0] && Сделкавниз==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
{
Alert("dwfractal = ",dwfractal, ", Bid = ",Bid);
Tвниз=Time[0];
while(true) // Цикл открытия орд.
{
B++;
SL[B]=Bid+Ограничение*Point;
TP[B]=Bid-4*Point-Прибыль*Point;
ticketdown=OrderSend(Symb, OP_SELL, Lot, Bid,0, SL[B], TP[B],NULL,B,0,вниз); // Ордер вниз
Error=GetLastError();
switch(Error) // Преодолимые ошибки
{
case6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
RefreshRates(); // Обновим данныеSleep(1); // Задержка в цикле до нового тикаcontinue; // На след. итерацию
}
break; // Выход из цикла
}
Сделкавниз=true;
}
}
//----return(0);
}
//+------------------------------------------------------------------+
Und bis es im Tester funktioniert, ist es sinnlos, es für die Optimierung mit einem Fehler zu verwenden. Was ist der Fehler... ?
Leonid82, High[1] ist der Höchstkurs der ersten Kerze. Um sie zu erhalten, müssen Sie nur dieses Skript erstellen. Und diesen Preis erhält man nicht vom Expert Advisor, sondern vom Terminal.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Herzlichen Glückwunsch an Sie!
Glückwünsche sind angebracht. Obwohl ein Schuss in die Luft niemandem schadet.
Glückwünsche sind angebracht. Obwohl ein Schuss in die Luft niemandem schadet.
Victor, ist Ihr Skype nicht verfügbar oder ist Ihre Verbindung gestört? Was ist das ZZ?
Ja, ich meine, vielleicht sollte ich einen speziellen Zapper bauen. Es ist nicht mein Skype, das im Sterben liegt. Ich habe dich in grün.
Es gibt keine Geschichte oder es gibt Fehler in der Geschichte
Guten Abend!
Ich kann mir keinen Reim auf die
Im Indikator Fraktale. Wenn ich richtig denke, zeigt der Indikator den Extremwert unter fünf Balken an, unter der Bedingung, dass die Maxima der zwei vorhergehenden und der zwei folgenden Balken (im Falle eines Fraktals nach oben) kleiner sind (obwohl das "Vögelchen" eines Fraktals auch dann auf dem Chart angezeigt wird, wenn das Extremum des ganz linken Balkens dieser fünf = Extremum ...... und nicht kleiner als dieses ist). Warum also umschalten? Was wird angezeigt, wenn die Verschiebung nicht gleich 3, sondern gleich 2 oder 5 ist?
Ich habe diesen Code erstellt, um den Markt nach dem ersten Fraktal Break nach dem MA Break zu betreten. Im Test werden jedoch nicht überall Geschäfte geöffnet, obwohl dies eigentlich vorgesehen ist. Ich verstehe nicht, was los ist? Im realen Modus (bei der Überprüfung auf M1 kann ich den Fehler nicht finden).
Und bis es im Tester funktioniert, ist es sinnlos, es für die Optimierung mit einem Fehler zu verwenden. Was ist der Fehler... ?Leonid82 24.01.2011 19:51
Hallo, ich habe einen Expert Advisor, der mit EURUSD arbeitet. Wie kann ich z. B. High[1] auf GBPUSD erhalten?
Ich danke Ihnen für Ihre Hilfe.
Leonid82, High[1] ist der Höchstkurs der ersten Kerze. Um sie zu erhalten, müssen Sie nur dieses Skript erstellen. Und diesen Preis erhält man nicht vom Expert Advisor, sondern vom Terminal.