Inhalte aufrufen

  • Über Facebook anmelden Über Twitter anmelden Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

Alarmfunktion

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
30 Antworten zu diesem Thema

  #1
OFFLINE   IDCBOI123

Hey Experten,

 

hab mal wieder ein Anliegen.

 

ich habe mir einen EA im Internet zam gebastelt der ziemliche viele Signale generiert.

 

Für mich wichtig sind dabei aber nur ganz wenige.

 

Nun ist meine Idee dazu einen EA daneben laufen zu lassen der nur mit einer Alarm Funktion ausgestattet ist und mich benarichtigt ob eine Position offen ist und zwar nur dann 

wenn xBars verstrichen sind.

 

Also mein Haupt EA macht seine Position auf und schließt aber in der selben Bar wieder, heißt es soll kein Alarm geben.

Macht er wieder eine Position auf und nach xBars ist diese noch offen soll es einen Alarm geben.

 

Habt Ihr da ne Idee oder gibt es vielleicht schon  so eine Alarmfunktion?

 

Vielen Dank Euch schonmal für eventuelle Hilfe :).

 

LG Ronny



  #2
OFFLINE   traderdoc

Hallo Ronny,

 

wieder mal am Basteln? Immer wenn ich dieses Wort im Kontext der EA-Erstellung lese, kann ich mir ein Schmunzeln nicht verkneifen.

Man möge sich mal vorstellen, der EA soll ja mal auf einem Live-Konto laufen und der Bastler hat beim Basteln die falschen Elemente

und das auch noch mit dem falschen Leim zusammengeklebt! Häufig sind es natürlich eher seltenere Situationen bei dem der EA

in Konstellationen ablauft, die dann im ungünstigsten Fall zum "Absturz" führen oder Orders nicht rechtzeitig oder gar nicht schließen etc.,

so dass man viele Fehler zuerst gar nicht bemerkt.

 

Also ich habe da eine sehr gespaltene Meinung zur Sinnhaftigkeit solcher Bastelarbeiten. Aber gut, das ist Deine Entscheidung.

 

Zu Deinem Anliegen:

Ja warum wird denn die Benachrichtigung via des geplanten zweiten EAs nicht einfach in den ersten EA integriert? Ich sehe da überhaupt

keine Hürde in der Umsetzung.

 

traderdoc


  • IDCBOI123 und asfranz gefällt das

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #3
OFFLINE   IDCBOI123

Hey Doc :),

 

ich weiß schon was Du meinst und das ist ja auch völlig richtig! ABER ;)

 

Ich hab schon wieder so viele Ideen die ich erstmal testen muss ob die überhaupt ansatzweise einen Sinn machen oder halt nicht.

 

Naja und ich kann es mir "noch" nicht leisten das jedesmal gleich in einen EA zu programmieren lassen.

 

Ich schau halt grad mit meinen "Leihe"systemen die ich mir da eben zam Bastel erstmal auf einfache weise ob ich die Idee weiterverfolge oder nicht.

 

Wenn ich dann was habe wo ich denke das lohnt sich jetzt in was Ordentliches zu Programmieren klingel ich dann schon bei Dir, weil Du bist für mich da einfach der TOP Mann.

 

Aber wie gesagt ich muss halt jetzt erstmal schauen das ich zumindestens die Strategie finde die ich möglichst dauerhaft nutzen möchte ehe ich den kostspieligen Weg gehe.

zudem läuft ja alles noch im DEMO alles andere wäre idiotisch.

 

Hilfst mir kurz :)



  #4
OFFLINE   traderdoc

Ja, wie geschrieben, den Part den Du da in einem zweiten EA bauen wolltest, baust Du halt in den ersten mit ein.

Oder zielte Deine Bemerkung bzgl. der Idee zur Lösung auf die reine Codelösung?

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #5
OFFLINE   IDCBOI123

ne ich will das der code ansich so bleibt ich aber nur über bestimmte eröffnungen informiert werde. die stopps sind da halt sehr eng.

 

wenn ich die normale Alarmfunktion vom MT4 nutze würde ich dauernd informiert werden wo ich garnet will.

 

Deswegen sollte halt nur ein Alarm kommen wenn der Trade den der EA eröffnet hat noch nach xBars offen ist.

 

Mehr nicht. will das erstmal testen und schauen ob des überhaupt sinn macht mit der Strategie. 



  #6
OFFLINE   traderdoc

Ja mir ist schon klar was Du willst. Ich wollte nur wissen ob Du eine prinzipielle Lösung wolltest, die ich Dir schon gegeben

hatte oder ob Du den Code dazu haben wolltest. Und es bliebe dabei, dass dieser Code in den 1. EA integriert wird.

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #7
OFFLINE   IDCBOI123

ne sowas hattest Du mir glaub no net programmiert. also ich bräuchte einen neuen code für so einen Alarm. gibts da schon was fertiges vieleicht?



  #8
OFFLINE   traderdoc

Ronny, Du verstehst mich nicht richtig.

Reicht Dir aus, dass ich Dir vor ein paar Minuten geschrieben hatte, dass der erforderliche Code in den 1. EA zu integrieren wäre

oder möchtest Du hier in den nächsten Posts den Code dazu explizit sehen?

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #9
OFFLINE   IDCBOI123

Naja hmmm. wenn du so fragst könnt ich ja gleich beides testen.

 

Aber sinnvol ist es vieleicht den in den EA einzubringen. Also ersteres :)



  #10
OFFLINE   IDCBOI123

Könnte man nicht einen EA, Sript oder keine Ahnung programmieren das einfach nur schaut ob ein Trade eröffnet wurde und praktisch mir nur ein Alarm (in form einer Email oder Notification) mitteilt wenn dieser (selbes Zeitfenster) nach xBars immer noch offen ist.

 

Wurde der trade vorher schon geschlossen natürlich kein Alarm.


So kann ich das nämlich erstmal testen ohne das dauernd mein Handy bimmelt da der EA im Zeitfenster M1 läuft und eben dauernd Trades eröffnet werden und kurz darauf wieder geschlossen werden.

 

Diese sind jedoch nicht interessant für mich. nur Die die mehr als nur eine Bar laufen. 



  #11
OFFLINE   traderdoc

Pass auf, wir machen das ganz einfach. Du integrierst den Code einfach in Deinen ersten EA und gut ist.

Das Aufrufen der Funktion CheckOrders() in Deinem Code nicht vergessen.

Please Login or Register to see this Hidden Content

Wenn Die Order geschlossen oder eine neue Order geöffnet wurde, muss das Flag Alarm wieder auf false gesetzt werden!

 

traderdoc


Bearbeitet von traderdoc, 26 January 2017 - 18:12 Uhr,

  • IDCBOI123 gefällt das

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #12
OFFLINE   IDCBOI123

Dank Dir Doc, das werde ich mal testen ob es funktioniert. sag dir dann Bescheid. Danke nochmal :)



  #13
OFFLINE   traderdoc

Ich musste noch ein break; schnell einbauen.

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #14
OFFLINE   IDCBOI123

bekomm immer den Fehler
 
 
'CheckOrders' - function can be declared only in the global scope


  #15
OFFLINE   traderdoc

Der Aufruf

CheckOrders();

sollte innerhalb von OnTick sein, die Deklaration und der gesamte Funktionskörper muss unbedingt

außerhalb der Funktion OnTick geschrieben werden.

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #16
OFFLINE   IDCBOI123

Soll ich Dir den EA mal schicken? und auf welche email



  #17
OFFLINE   traderdoc

Ne, ne, nun baue erst mal das so ein, wie ich es geschrieben hatte, dann können wir immer noch weitersehen.

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #18
OFFLINE   IDCBOI123

naja aber ich check des net. hab kein OnTick


int BAR3O =  iOpen(NULL, 0, 3);
int BAR4C =  iClose(NULL, 0, 4);
int BAR4O =  iOpen(NULL, 0, 4);
int BAR0H = iHigh(NULL, 0,  0);
int BAR0L = iLow(NULL, 0, 0);
 
int BAR5O =  iOpen(NULL, 0, 100);
 
int BAR1H = iHigh(NULL, 0,  1);
int BAR1L = iLow(NULL, 0, 1);
 
bool NewBuyAllowed, NewSellAllowed, SS, BB;
 
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
void CheckOrders() {
 for (int i = OrdersTotal() - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
 if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Number) {  //sofern eine MagicNumber vergeben wurde, ansonsten das rechte Glied weglassen
if (!Alarm && iBarShift(NULL, 0, OrderOpenTime()) - xBars >= 0) {
 //Alarm
 Alarm = true;
}
 }
}
 }
}
//Check position
 bool IsTrade=False;
 
 for(int i=0; i<Total; i++) 
 {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) 
{
 IsTrade=True;
 if(OrderType()==OP_BUY) 
 {
//Close
 
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
 
//  if ( BAR5O > Ask) Order = SIGNAL_CLOSEBUY;
 // if ( IA > IB && BAR0C < IB ) Order = SIGNAL_CLOSEBUY;
 
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
 
if(Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount)))) 
{
 OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,MediumSeaGreen);
 if(SignalMail) SendMail("[Signal Alert]","["+Symbol()+"] "+DoubleToStr(Bid,Digits)+" Close Buy");
 if(!EachTickMode) BarCount=Bars;
 IsTrade=False;
 continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop>0) 
{
 if(Bid-OrderOpenPrice()>Point*TrailingStop) 
 {
if(OrderStopLoss()<Bid-Point*TrailingStop) 
{
 OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,MediumSeaGreen);
 if(!EachTickMode) BarCount=Bars;
 continue;
}
 }
}
} else {
//Close
 
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell)  |
//+------------------------------------------------------------------+
 //int IROT = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 0);
//int IROT1 = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 1);
//double IBLAU = iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, Current + 0);
//double IA = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANA, Current + 0);
//double IB = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANB, Current + 0);
 
//int BAR0C = iClose(NULL, 0,  0);
//double BAR0O = iOpen(NULL, 0, 0);
//double BAR1C = iClose(NULL, 0,  1);
//double BAR1O = iOpen(NULL, 0, 1);
//double BAR0H = iHigh(NULL, 0,  0);
//double BAR0L = iLow(NULL, 0, 0);
 
//double BAR1H = iHigh(NULL, 0,  1);
//double BAR1L = iLow(NULL, 0, 1);
 
 
 
 //  if ( IA > IB && BAR0C > IA ) Order = SIGNAL_CLOSESELL;
 
 
//+------------------------------------------------------------------+
//| Signal End(Exit Sell)  |
//+------------------------------------------------------------------+
 
if(Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount)))) 
{
 OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,DarkOrange);
 if(SignalMail) SendMail("[Signal Alert]","["+Symbol()+"] "+DoubleToStr(Ask,Digits)+" Close Sell");
 if(!EachTickMode) BarCount=Bars;
 IsTrade=False;
 continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop>0) 
{
 if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) 
 {
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) 
{
 OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,DarkOrange);
 if(!EachTickMode) BarCount=Bars;
 continue;
}
 }
}
 }
}
 }
 
//+------------------------------------------------------------------+
//| Signal Begin(Entry)  |
//+------------------------------------------------------------------+
 
//int IROT = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 0);
//int IROT1 = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 1);
//double IBLAU = iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, Current + 0);
//double IA = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANA, Current + 0);
//double IB = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANB, Current + 0);
 
//int BAR0C = iClose(NULL, 0,  0);
//double BAR0O = iOpen(NULL, 0, 0);
//double BAR1C = iClose(NULL, 0,  1);


  #19
OFFLINE   traderdoc

Ronny, das ist doch kein EA! Nicht mal im Ansatz.

Dieser Code müßte eigentlich vom Compiler gar nicht akzeptiert werden.

Und wenn doch, dann läuft der "EA" nicht, weil es eben keiner ist.

 

Da trifft ja das, was ich im Post #2 schrieb, voll zu: falsche Elemente, falscher Leim.

Sorry, aber in dieses Fragment kann man auch meinen Code nicht einfach integrieren. Dazu müsstest

Du erst einmal Deinem Code eine Struktur eines EAs geben, dann können wir weitermachen.

 

Wo hast Du denn bloß den Code her?

 

traderdoc


Bearbeitet von traderdoc, 26 January 2017 - 18:31 Uhr,

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #20
OFFLINE   IDCBOI123

hab da jetzt nur was raus kopiert , also hier des komplette:

 

//+------------------------------------------------------------------+
//| This MQL is generated by Expert Advisor Builder  |
//|  

Please Login or Register to see this Hidden Content

|
//|  |
//|  In no event will author be liable for any damages whatsoever. |
//|  Use at your own risk. |
//|  |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+
 
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL  2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
 
#property copyright "Expert Advisor Builder"
#property link  "

Please Login or Register to see this Hidden Content

 
extern int MagicNumber = 0;
extern bool SignalMail = True;
extern bool EachTickMode=True;
extern double Lots=1;
extern int Slippage=0;
extern bool UseStopLoss=False;
extern int StopLoss=100;
extern bool UseTakeProfit=False;
extern int TakeProfit=100;
extern bool UseTrailingStop=False;
extern int TrailingStop=30;
extern int EMA=30;
extern double PARAK=0.008;
extern double PARAL=0.001;
extern double A=26;
extern double B=52;
extern double C=26;
extern double D=52;
extern double G=0;
extern double K=0;
extern double BARWERT=100;
int BarCount;
int Current;
int ACTIVE;
int xBars = 3;
 
bool Alarm;
bool TickCheck=False;
 
 
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() 
{
 BarCount=Bars;
 
 if(EachTickMode) Current=0; else Current=1;
 
 return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() 
{
 return(0);
}
//+------------------------------------------------------------------+
//| expert start function  |
//+------------------------------------------------------------------+
int start() 
{
 int Order=SIGNAL_NONE;
 int Total,Ticket;
 double StopLossLevel,TakeProfitLevel;
 
 
 if(EachTickMode && Bars!=BarCount) TickCheck=False;
 Total = OrdersTotal();
 Order = SIGNAL_NONE;
 
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
 
 
 
 
 
 
 
 
 
 
 
 
 
 int IROT = iIchimoku(NULL, 0, 9, C, D, MODE_TENKANSEN, Current + 0);
int IROT1 = iIchimoku(NULL, 0, 9, C, D, MODE_TENKANSEN, Current + 1);
int IBLAU = iIchimoku(NULL, 0, 9, C, D, MODE_KIJUNSEN, Current + 0);
int IA = iIchimoku(NULL, 0, 9, A, B, MODE_SENKOUSPANA, Current + 0);
int IB = iIchimoku(NULL, 0, 9, A, B, MODE_SENKOUSPANB, Current + 0);
int EMA0 = iMA(NULL,0,EMA,0,MODE_SMA,PRICE_CLOSE,0);
 
 
int BAR0C = iClose(NULL, 0,  0);
int BAR0O = iOpen(NULL, 0, 0);
int BAR1C = iClose(NULL, 0,  1);
int BAR1O = iOpen(NULL, 0, 1);
int BAR2C =  iClose(NULL, 0, 2);
int BAR2O =  iOpen(NULL, 0, 2);
int BAR3C =  iClose(NULL, 0, 3);
int BAR3O =  iOpen(NULL, 0, 3);
int BAR4C =  iClose(NULL, 0, 4);
int BAR4O =  iOpen(NULL, 0, 4);
int BAR0H = iHigh(NULL, 0,  0);
int BAR0L = iLow(NULL, 0, 0);
 
int BAR5O =  iOpen(NULL, 0, 100);
 
int BAR1H = iHigh(NULL, 0,  1);
int BAR1L = iLow(NULL, 0, 1);
 
bool NewBuyAllowed, NewSellAllowed, SS, BB;
 
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
 
//Check position
 bool IsTrade=False;
 
 for(int i=0; i<Total; i++) 
 {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) 
{
 IsTrade=True;
 if(OrderType()==OP_BUY) 
 {
//Close
 
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
 
//  if ( BAR5O > Ask) Order = SIGNAL_CLOSEBUY;
 // if ( IA > IB && BAR0C < IB ) Order = SIGNAL_CLOSEBUY;
 
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
 
if(Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount)))) 
{
 OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,MediumSeaGreen);
 if(SignalMail) SendMail("[Signal Alert]","["+Symbol()+"] "+DoubleToStr(Bid,Digits)+" Close Buy");
 if(!EachTickMode) BarCount=Bars;
 IsTrade=False;
 continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop>0) 
{
 if(Bid-OrderOpenPrice()>Point*TrailingStop) 
 {
if(OrderStopLoss()<Bid-Point*TrailingStop) 
{
 OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,MediumSeaGreen);
 if(!EachTickMode) BarCount=Bars;
 continue;
}
 }
}
} else {
//Close
 
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell)  |
//+------------------------------------------------------------------+
 //int IROT = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 0);
//int IROT1 = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 1);
//double IBLAU = iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, Current + 0);
//double IA = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANA, Current + 0);
//double IB = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANB, Current + 0);
 
//int BAR0C = iClose(NULL, 0,  0);
//double BAR0O = iOpen(NULL, 0, 0);
//double BAR1C = iClose(NULL, 0,  1);
//double BAR1O = iOpen(NULL, 0, 1);
//double BAR0H = iHigh(NULL, 0,  0);
//double BAR0L = iLow(NULL, 0, 0);
 
//double BAR1H = iHigh(NULL, 0,  1);
//double BAR1L = iLow(NULL, 0, 1);
 
 
 
 //  if ( IA > IB && BAR0C > IA ) Order = SIGNAL_CLOSESELL;
 
 
//+------------------------------------------------------------------+
//| Signal End(Exit Sell)  |
//+------------------------------------------------------------------+
 
if(Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount)))) 
{
 OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,DarkOrange);
 if(SignalMail) SendMail("[Signal Alert]","["+Symbol()+"] "+DoubleToStr(Ask,Digits)+" Close Sell");
 if(!EachTickMode) BarCount=Bars;
 IsTrade=False;
 continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop>0) 
{
 if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) 
 {
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) 
{
 OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,DarkOrange);
 if(!EachTickMode) BarCount=Bars;
 continue;
}
 }
}
 }
}
 }
 
//+------------------------------------------------------------------+
//| Signal Begin(Entry)  |
//+------------------------------------------------------------------+
 
//int IROT = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 0);
//int IROT1 = iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, Current + 1);
//double IBLAU = iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, Current + 0);
//double IA = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANA, Current + 0);
//double IB = iIchimoku(NULL, 0, 9, 26, 52, MODE_SENKOUSPANB, Current + 0);
 
//int BAR0C = iClose(NULL, 0,  0);
//double BAR0O = iOpen(NULL, 0, 0);
//double BAR1C = iClose(NULL, 0,  1);
//double BAR1O = iOpen(NULL, 0, 1);
//double BAR2O =  iOpen(NULL, 0, 2);
 
 
//double BAR0H = iHigh(NULL, 0,  0);
//double BAR0L = iLow(NULL, 0, 0);
 
//double BAR1H = iHigh(NULL, 0,  1);
//double BAR1L = iLow(NULL, 0, 1);
 
 
 
//if ( BAR1O < BAR1C && BAR2O > BAR2C && BAR3O < BAR3C && (BAR2O - BAR1C < K )) Order = SIGNAL_BUY;
 
//if ( BAR1O > BAR1C && BAR2O < BAR2C && BAR3O < BAR3C && BAR4C < BAR4O ) Order = SIGNAL_BUY;
 
 
//if ( BAR1O > BAR1C && BAR2O < BAR2C && BAR3O > BAR3C &&  ( BAR1C - BAR2O < K)) Order = SIGNAL_SELL;
 
//if ( BAR1O < BAR1C && BAR2O > BAR2C && BAR3O > BAR3C && BAR4C > BAR4O ) Order = SIGNAL_SELL;
 
 
//if (EMA0 < BAR1O)
//if (IA < IB && (BAR1O - IB < K) && BAR1C > IB && IROT < Ask && BAR1C > IROT1) Order = SIGNAL_BUY;
//if ( (BAR1O < BAR1C ) && (BAR2O > BAR2C) && (BAR3O < BAR3C) && (BAR2O < BAR1C ))  BB = 1;
if ((BAR1C - BAR1O < 0) && (BAR1C - BAR1O > BARWERT )) Order = SIGNAL_BUY;
//if ((IA - IB > G) && (BAR1O - IA < K) && (BAR1C - IA > G) && (IROT - Ask > G) && (BAR1C - IROT1 > G)) BB = 1;
//if ((IA - IB > G) && (BAR1O - IA < K) && (BAR1C - IA > G) && (IROT - Ask < K) && (BAR1C - IROT1 > G)) BB = 1;
//if ((IB - IA > G) && (BAR1O - IB < K) && (BAR1C - IB < K) && (Ask - IB > G)) BB = 1;
//if ((IA - IB > G) && (BAR1O - IA < K) && (BAR1C - IA > G)) BB = 1;
//if ((IBLAU - BAR1C < K)&&(IA - IB < K) && (BAR1O - IB > G) && (BAR1C - IB < K)  && (BAR1O - IB > G)) BB = 1;
 
//if ((IA - IB < K) &&( BAR1C < BAR1O) && (BAR2C > BAR2O))  BB = 1;
 
if (BB == 1) 
 Order = SIGNAL_SELL;
 
 
if (EMA0 > BAR1O)
if ( (BAR1O > BAR1C) && (BAR2O < BAR2C) && (BAR3O > BAR3C) &&  (BAR1C < BAR2O ))  SS = 1; //
if ((IBLAU > BAR1C )&&(IA - IB > G) && (BAR1O - IB > G) && (BAR1C - IB < K)) SS = 1;
if ((IBLAU > BAR1C )&& (IB - IA > G) && (Close[0] - IA < K) && (BAR0O - IA > G))  SS = 1;
if ((IBLAU > BAR1C )&&(IA - IB > G) && (BAR1O - IB > G) && (Ask - IB < K)) SS = 1;
if ((IBLAU > BAR1C )&&(IA - IB > G) && (BAR1O - IB > G) && (BAR0L - IB < K)) SS = 1;
if ((IBLAU > BAR1C )&&(IB - IA > G) && (BAR1O - IA > G) && (BAR0L - IA < K)) SS = 1;
 
if(SS == 1)
 Order = SIGNAL_SELL;
 
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
 
//Buy
 if(Order==SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount)))) 
 {
if(!IsTrade) 
{
 //Check free margin
 if(AccountFreeMargin()<(1000*Lots)) 
 {
Print("We have no money. Free Margin = ",AccountFreeMargin());
return(0);
 }
 
 if(UseStopLoss) StopLossLevel=Ask-StopLoss*Point; else StopLossLevel=0.0;
 if(UseTakeProfit) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0;
 
 Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,StopLossLevel,TakeProfitLevel,"Buy(#"+MagicNumber+")",MagicNumber,0,DodgerBlue);
 if(Ticket>0) 
 {
if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)) 
{
 Print("BUY order opened : ",OrderOpenPrice());
 if(SignalMail) SendMail("[Signal Alert]","["+Symbol()+"] "+DoubleToStr(Ask,Digits)+" Open Buy");
 } else {
 Print("Error opening BUY order : ",GetLastError());
}
 }
 if(EachTickMode) TickCheck = True;
 if(!EachTickMode) BarCount = Bars;
 return(0);
}
 }
 
//Sell
 if(Order==SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount)))) 
 {
if(!IsTrade) 
{
 //Check free margin
 if(AccountFreeMargin()<(1000*Lots)) 
 {
Print("We have no money. Free Margin = ",AccountFreeMargin());
return(0);
 }
 
 if(UseStopLoss) StopLossLevel=Bid+StopLoss*Point; else StopLossLevel=0.0;
 if(UseTakeProfit) TakeProfitLevel=Bid-TakeProfit*Point; else TakeProfitLevel=0.0;
 
 Ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,StopLossLevel,TakeProfitLevel,"Sell(#"+MagicNumber+")",MagicNumber,0,DeepPink);
 if(Ticket>0) 
 {
if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)) 
{
 Print("SELL order opened : ",OrderOpenPrice());
 if(SignalMail) SendMail("[Signal Alert]","["+Symbol()+"] "+DoubleToStr(Bid,Digits)+" Open Sell");
 } else {
 Print("Error opening SELL order : ",GetLastError());
}
 }
 if(EachTickMode) TickCheck = True;
 if(!EachTickMode) BarCount = Bars;
 return(0);
}
 }
 
 if(!EachTickMode) BarCount=Bars;
 
 return(0);
}
//+------------------------------------------------------------------+

Hab da Deins jetzt aber wieder rausgenommen





Similar Topics

  Thema Eröffnet von Statistik Letzter Beitrag




0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer