[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 412
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
D.h. der Fensterdeskriptor ist einfach die ORDER-Nummer des Fensters, beginnend mit 0 (Hauptfenster)?
Nein
Guten Tag alle! beim Schreiben eines waggle Experten, wurde für genauere Ausstiegspunkte suchen und stieß auf eine Kreuzung zwischen RSI (8) und ADX(25). visuell alles in Ordnung ist, wenn der Handel manuell auf der Demo.
Frage, wie die Schnittbedingung des RSI (8) mit ADX(25) DI + zum Beispiel zu schreiben, wenn, RSI (8) hat eine Grenze von 0 bis 100, und ADX(25) hat keine Grenze. das heißt, wenn Sie werfen ADX auf dem Diagramm ohne Grenze und dann werfen RSI auf sie, dann RSI Skalen von max und min ADX. wenn ADX angeben Grenze von 0 bis 100, dann gibt es sehr wenige klare Schnittpunkte ADX mit RSI.
Ist es möglich, den Wert des RSI zu definieren, wenn er durch den ADX skaliert wird?
Nein
Ist es möglich, den Wert des RSI zu definieren, wenn er durch den ADX skaliert wird?
Ich habe einen Indikator mit etwa 8 Parametern, ich habe alle Parameter korrekt eingegeben, ich habe es mehrmals überprüft, aber bei der Kompilierung erscheint immer noch der Fehler ')'. - falsche Parameteranzahl D:\InstaTrader\experts\Expert_2.mq4 (11, 280)
Gibt es eine Begrenzung für die Anzahl der Parameter in einem nicht standardisierten Indikator, wenn er über iCustom angeschlossen ist?
Ich habe einen Indikator mit etwa 8 Parametern, ich habe alle Parameter korrekt eingegeben, ich habe es mehrmals überprüft, aber bei der Kompilierung erscheint immer noch der Fehler ')'. - falsche Parameteranzahl D:\InstaTrader\experts\Expert_2.mq4 (11, 280)
????... wenn es Ihnen nichts ausmacht, geben Sie bitte eine ausführlichere Antwort... und es wäre toll, wenn Sie zumindest ein einfaches Skript als Beispiel geben könnten, das helfen würde zu verstehen, wozu die WindowHandle-Funktion dient
Bei Ihrem derzeitigen Wissensstand brauchen Sie das nicht unbedingt.
Wenn du den Wunsch hast, Programmierer zu werden, dann kaue die Wissenschaft mit Hilfe von Google. Abfrage "Fenster-Beschreibung site:mql4.com"
Ich bitte den Programmierguru, mir zu meiner Frage zu sagen, ob es überhaupt realistisch ist, diesen Berater zu machen?
Alles ist möglich, wenn man es will.
sehen die folgenden Dinge:
1) Kontrolle der Balkenöffnung
2) BestellungSenden
Versuch und Versuch, und die Gurus werden dich korrigieren
Hier ist ein EA, der die Order beim SCHLIESSEN der Kerze öffnet, nicht nur bei einem Kreuz.
Wer im Voraus helfen wird, bedankt sich.
//+------------------------------------------------------------------+
//| RSI_MA.mq4 |
//| Copyright © 2008, AEliseev k800elik@gmail.com |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Andrey E. k800elik@gmail.com"
#property link "http://www.metaquotes.net"
//---- Eingabeparameter
extern CCI_Per=14;
extern MA_Per=20;
extern CCI_close_Per=14;
extern double TakeProfit=500;
extern double StopLoss=150;
extern double Lots=0.01;
extern inttern Deposit=1000;
extern bool MM=false;
extern inttern _MagicNumber=131313;
extern int_Sleep=5000;
int LotA=1, Err=0;
int j=0; var2,var1;
int counter=0;
int-Ticket;
bool var3;
bool order=false;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
Comment("CCI_MA v1.5 © 2008, Andrey E. k800elik@gmail.com");
zurück(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
/* int i, a1, a2;
//----
wenn (Auftragssumme()>0)
{
for (i=0; i==OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS);
if (BestellMagischeZahl()==131313)
{
a1=OrderClose(LotA*Lots,Ask,5,Red);
//a2=OrderClose(var1,LotA*Lots,Ask,5,Red);
}
}
} */
zurück(0);
}
//+------------------------------------------------------------------+
//| Expertenstartfunktion |
//+------------------------------------------------------------------+
int start()
{
//----
if (isNewBar()) EveryBar();
EveryTick();
//----
zurück(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Prüfung auf neuen Takt |
//+------------------------------------------------------------------+
bool isNewBar()
{ static datetime TimeBar=0;
bool flag=false;
if(TimeBar!=Time[0])
{
TimeBar=Time[0];
flag=true;
}
return(flag);
}
//+------------------------------------------------------------------+
//| Aktion ausführen, wenn neuer Balken erscheint |
//+------------------------------------------------------------------+
void JederBalken()
{
// Print("Eine NEUE BAR ist eingetroffen!)
double MA[100], CCI[100], CCIclose[100], StandDevi[100];
int i,limit=ArraySize(CCI);
doppelt SL, TP;
Sleep(_Sleep);
SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
TP = NormalizeDouble(Ask + TakeProfit*Point, Digits);
for(i=0; i<limit; i++)
{
CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i);
CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i);
MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i);
}
// Prüfen, ob genug Geld vorhanden ist, um einen neuen Auftrag zu eröffnen
if(KontoFreieMarge()<(1000*Lose))
{
Print("Wir haben kein Geld. Freie Marge = ", AccountFreeMargin());
zurück(0);
}
//=================================================================================
int _GetLastError = 0, _OrdersTotal = OrdersTotal();
//---- geht alle offenen Stellen durch
for ( int z = _OrdersTotal - 1; z >= 0; z -- )
{
//---- wenn ein Fehler bei der Auswahl der Position auftritt, weiter zur nächsten Position
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
_GetLastError = GetLastError();
Print("OrderSelect( ",z, ", SELECT_BY_POS ) - Fehler #", _GetLastError);
weiter;
}
// wenn eine Position nicht für das aktuelle Symbol geöffnet ist, wird sie übersprungen
if ( OrderSymbol() != Symbol() ) continue;
// wenn die MagicNumber nicht gleich _MagicNumber ist, übergehen
// diese Position
if ( OrderMagicNumber() != _MagicNumber ) continue;
//---- wenn eine BAY-Position offen ist,
wenn ( OrderType() == OP_BUY )
{
//---- wenn der CCI die Linie 190 nach unten kreuzt
wenn (((CCIclose[2]>190) && (CCIclose[1]<=100)) || (CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>=MA[limit-MA_Per-2])
{
//---- Position schließen
if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 10, Green ) )
{
_GetLastError = GetLastError();
Print("OrderClose error # , _GetLastError );
Err=1;
zurück(-1);
}
}
// wenn sich das Signal nicht geändert hat, beenden - es ist zu früh zum Öffnen
//neue Position
sonst
{ return(0); }
}
//---- wenn eine Verkaufsposition eröffnet wird,
wenn ( OrderType() == OP_SELL )
{
//---- wenn der CCI die Linie -190 nach oben überschreitet,
wenn (((CCIclose[2]<-190) && (CCIclose[1]>=-300)) || ((CCI[1]>MA[Limit-MA_Per-1]) && (CCI[2]<=MA[Limit-MA_Per-2]))
{
//---- Position schließen
if(!OrderClose( OrderTicket(), OrderLots(), Ask, 10, Red ) )
{
_GetLastError = GetLastError();
Print("OrderClose error # ", _GetLastError );
Err=2;
zurück(-1);
}
}
// wenn sich das Signal nicht geändert hat, beenden - es ist zu früh zum Öffnen
// neue Position
sonst return(0);
}
}
//+------------------------------------------------------------------+
//| Wenn die Ausführung diesen Punkt erreicht hat, gibt es keine offene Position.
//| Prüfen Sie, ob es möglich ist, eine Position zu eröffnen.
//+------------------------------------------------------------------+
Sleep(_Sleep);
//---- wenn der CCI den MACD von unten nach oben gekreuzt hat,
SL = NormalizeDouble(Bid - StopLoss*Point, Digits);
TP = NormalizeDouble(Bid + TakeProfit*Point, Digits);
wenn ((CCI[1]>MA[Grenze-MA_Per-1]) && (CCI[2]<MA[Grenze-MA_Per-2])
{
//---- offene BAY-Stelle
if(OrderSend( Symbol(), OP_BUY, LotA*Lots, Ask, 5, SL, TP, "CCI_test_buy", _MagicNumber, 0, Green ) < 0 )
{
_GetLastError = GetLastError();
Print( "OrderSend OP_BUY error # ", _GetLastError );
Err=3;
zurück(-1);
}
zurück(0);
}
//---- wenn der CCI den MACD von oben nach unten gekreuzt hat,
SL = NormalizeDouble(Ask + StopLoss*Point, Digits);
TP = NormalizeDouble(Ask - TakeProfit*Point, Digits);
wenn ((CCI[1]<MA[Grenze-MA_Per-1]) && (CCI[2]>MA[Grenze-MA_Per-2])
{
//---- eine Verkaufsposition eröffnen
if(OrderSend( Symbol(), OP_SELL, LotA*Lots, Bid, 5, SL, TP, "CCI_test_close", _MagicNumber, 0, Red ) < 0 )
{
_GetLastError = GetLastError();
Print("OrderSend OP_SELL error # ", _GetLastError );
Err=4;
zurück(-1);
}
zurück(0);
}
}
//+------------------------------------------------------------------+
//| Berechnungen bei jeder Preisänderung durchführen |
//+------------------------------------------------------------------+
void EveryTick()
{
int i;
wenn (MM==true)
{
wenn (Kontostand()>(2*Einzahlung)) LotA=2;
wenn (Kontostand()>(3*Einzahlung)) LotA=3;
wenn (Kontostand()>(4*Einzahlung)) LotA=4;
wenn (Kontostand()>(5*Einlage)) LotA=5;
wenn (Kontostand()>(6*Einzahlung)) LotA=6; if (Kontostand()>(6*Einlage); LotA=6;
wenn (Kontostand()>(7*Einzahlung)) LotA=7;
wenn (Kontostand()>(8*Einzahlung)) LotA=8;
wenn (Kontostand()>(9*Einzahlung)) LotA=9;
wenn (Kontostand()>(10*Einlage)) LotA=10;
wenn (Kontostand()>(11*Einzahlung)) LotA=11;
wenn (Kontostand()>(12*Einzahlung)) LotA=12;
wenn (Kontostand()>(13*Einzahlung)) LotA=13;
wenn (Kontostand()>(14*Einzahlung)) LotA=14;
wenn (Kontostand()>(15*Einzahlung)) LotA=15;
wenn (Kontostand()>(16*Einzahlung)) LotA=16;
wenn (Kontostand()>(17*Einzahlung)) LotA=17;
wenn (Kontostand()>(18*Einzahlung)) LotA=18;
wenn (Kontostand()>(19*Einzahlung)) LotA=19;
wenn (Kontostand()>(20*Einzahlung)) LotA=20;
}
int _GetLastError = 0, _OrdersTotal = OrdersTotal();
int z;
doppelt SL, TP;
double MA[100], CCI[100], CCIclose[100], StandDevi[100];
int limit=ArraySize(CCI);
for(i=0; i<limit; i++)
{
CCI[i]=iCCI(NULL,0,CCI_Per,PRICE_CLOSE,i);
CCIclose[i]=iCCI(NULL,0,CCI_close_Per,PRICE_CLOSE,i);
MA[i]=iMAOnArray(CCI,0,MA_Per,0,MODE_SMA,i);
}
switch(Err)
{
Fall 1:
for ( z=_OrdersTotal - 1; z >= 0; z -- )
{
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
_GetLastError = GetLastError();
Print("OrderSelect( ",z, ", SELECT_BY_POS ) - Fehler #", _GetLastError);
weiter;
}
if ( OrderSymbol() != Symbol() ) continue;
if ( OrderMagicNumber() != _MagicNumber ) continue;
wenn ( OrderType() == OP_BUY )
{
wenn (((CCIclose[2]>300) && (CCIclose[1]<=300) || (CCI[1]<MA[limit-MA_Per-1]) && (CCI[2]>=MA[limit-MA_Per-2])
{
if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 5, Green ) )
{
_GetLastError = GetLastError();
Print("CASE OrderClose error # , _GetLastError );
Err=1;
zurück(-1);
}
sonst Err=0;
}
}
}
Pause;
//=============================================================================
Fall 2:
for ( z=_OrdersTotal - 1; z >= 0; z -- )
{
if ( !OrderSelect( z, SELECT_BY_POS ) )
{
_GetLastError = GetLastError();
Print("OrderSelect( ",z, ", SELECT_BY_POS ) - Fehler #", _GetLastError);
weiter;
}
if ( OrderSymbol() != Symbol() ) continue;
if ( OrderMagicNumber() != _MagicNumber ) continue;
wenn ( OrderType() == OP_SELL )
{
wenn (((CCIclose[2]<-300) && (CCIclose[1]>=-300) || ((CCI[1]>MA[limit-MA_Per-1]) && (CCI[2]<=MA[limit-MA_Per-2]))
{
if(!OrderClose( OrderTicket(), OrderLots(), Ask, 5, Red ) )
{
_GetLastError = GetLastError();
Print("CASE OrderClose error # ", _GetLastError );
Err=2;
zurück(-1);
}
sonst Err=0;
}
}
}
Pause;
//==============================================================================
Fall 3:
SL = NormalizeDouble(Bid - StopLoss*Point, Digits);
TP = NormalizeDouble(Bid + TakeProfit*Point, Digits);
if(OrderSend( Symbol(), OP_BUY, LotA*Lots, Ask, 7, SL, TP, "AI_test_buy", _MagicNumber, 0, Green ) < 0 )
{
_GetLastError = GetLastError();
Print( "CASE OrderSend OP_BUY error # ", _GetLastError );
Err=3;
zurück(-1);
}
sonst Err=0;
Pause;
//===================================================================================
Fall 4:
SL = NormalizeDouble(Ask + StopLoss*Point, Digits);
TP = NormalizeDouble(Ask - TakeProfit*Point, Digits);
if(OrderSend( Symbol(), OP_SELL, LotA*Lots, Bid, 7, SL, TP, "AI_test_close", _MagicNumber, 0, Red ) < 0 )
{
_GetLastError = GetLastError();
Print("CASE OrderSend OP_SELL error # ", _GetLastError );
Err=4;
zurück(-1);
}
sonst Err=0;
Pause;
}
}