Wie programmiert man? - Seite 167

 
 

Ich versuche immer noch, einen akustischen Alarm zu diesem Indikator hinzuzufügen...... Kann jemand den Code für mich überprüfen, da er nicht funktioniert?

//+------------------------------------------------------------------+

//|

//|

//+------------------------------------------------------------------+

#property copyright "niva"

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 White

#property indicator_color2 Red

extern bool Email_Enabled = false;

extern bool Alert_Enabled = true;

//---- input parameters

int CountBars=10000;

//---- buffers

double uptrend[];

double downtrend[];

bool AlertSent,EmailSent;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicator line

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,217);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1,218);

SetIndexBuffer(0,val1);

SetIndexBuffer(1,val2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| AltrTrend_Signal_v2_2 |

//+------------------------------------------------------------------+

int start()

{

if (CountBars>=Bars) CountBars=Bars;

int i,shift,counted_bars=IndicatorCounted();

int uptrend, downtrend;

for (shift = CountBars; shift>=0; shift--)

{

if(High[shift-1]>High[shift]&&Low[shift-1]>Low[shift]&&uptrend!=3){

uptrend = uptrend+1;

downtrend=0;

}else if(High[shift-1]<High[shift]&&Low[shift-1]<Low[shift]&&downtrend!=3){

downtrend=downtrend+1;

uptrend=0;

}

else{

uptrend=0;

downtrend=0;

}

if (uptrend==3)

{

val1[shift]=Low[shift];

}

if (downtrend==3)

{

val2[shift]=High[shift];

}

}

return(0);

}

//----

if (Alert_Enabled && (uptrend[0] != 0 || uptrend[0] !=0) && !AlertSent)

{

Alert(Symbol() + "HiLow+3");

AlertSent=true;

}

if (Email_Enabled && (downtrend[0] != 0 || downtrend[0] !=0) && !EmailSent)

{

SendMail(Symbol() + "HiLow+3","HiLow+3 indicator triggered");

EmailSent=true;

}

if(downtrend[0] == 0 && uptrend[0] == 0 )

{

EmailSent=false;

AlertSent=false;

}

return(0);

}

//+------------------------------------------------------------------+
 

Danke

mrwobbles:
Irgendwo im Code sind die Klammern unausgewogen. Es scheint, dass irgendwo ein } und ein ) im Code fehlen. Schauen Sie sich den Code an und zählen Sie, wie viele offene und geschlossene Klammern vorhanden sind (+1 für offene und -1 für geschlossene Klammern), damit Sie wissen, wie viele fehlen (z. B. bedeutet eine +2-Zählung zwei rechte Klammern '}' oder umgekehrt). Wenn er richtig eingerückt ist, solltest du herausfinden können, wo du die richtige } einfügen musst. Viel Spaß bei der Suche Der

Ich habe es geschafft, einige Einstellungen zu ändern und schließlich glaube ich, fast am Ziel zu sein! Jetzt nach der folgenden Codierung sagt es:

'shortSL' - Variable nicht definiert

'longSL' - Variable nicht definiert

So sieht es aus:

//+------------------------------------------------------------------+

//| Salgado.mq4 |

//| salgadoguilherme@hotmail.com

//| |

//+------------------------------------------------------------------+

#Eigenschaft Copyright ""

#property link "salgadoguilherme@hotmail.com"

extern bool trade=true;

extern int barstocount=50;

extern double lots=0.01;

extern int StopLoss=40;

extern int TakeProfit=10;

extern int Schlupf=3;

extern int magicnumber=816;

//+------------------------------------------------------------------+

//| Experten-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Experten-Deinitialisierungsfunktion |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

if(trade==true)

{

//M15

double M15_resistance=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,0);

double M15_resistance_p=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,2,barstocount-1);

double M15_line=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,0,0);

double M15_support=iCustom(NULL,PERIOD_M15,"!LinRegrBuf", "true",barstocount,1,0);

double slopeM15=((M15_resistance-M15_resistance_p)/barstocount)/Point;

//Alert(DoubleToStr(slopeM15,2);

Comment(

"\n", "M15 Steigung | ",slopeM15,

//KURZE EINTRAGUNG

if(slopeM15<0 && IsTradeAllowed()==true)

{

bool shortopen=false;

int ord_cnt1=OrdersTotal();

for (int start1=0;start1<ord_cnt1;start1++)

{

OrderSelect(start1, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber()==magicnumber && OrderType()==OP_SELL)

{shortopen=true;}

}

if(shortopen==false)

{

double M15High=iHigh(Symbol(),PERIOD_M15,0);

if(M15High>=M15_resistance)

int shortticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slippage,Bid+shortSL,M15_line,DoubleToStr(slopeM15,2);

if(shortticket<0)

{

//LONG EINTRITT

if(slopeM15>0 && IsTradeAllowed()==true)

{

bool longopen=false;

int ord_cnt=OrdersTotal();

for (int start=0;start<ord_cnt;start++)

{

OrderSelect(start, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber()==magicnumber && OrderType()==OP_BUY)

{longopen=true;}

}

if(longopen==false)

{

double M15Low=iLow(Symbol(),PERIOD_M15,0);

if(M15Low<=M15_support)

int longticket=OrderSend(Symbol(),OP_BUY,lots,Ask,slippage,Ask-longSL,M15_line,DoubleToStr(slopeM15,2);

if(longticket<0)

{

//----

return(0);

}

//+------------------------------------------------------------------+

 

Kerzentyp Indy

Hallo,

Ich brauche dringend MQL-Tutorials, wie man kerzenförmige Indikatoren wie den beigefügten Chart programmiert. Nur die Links zu irgendwo innerhalb oder außerhalb dieses Forums wird in Ordnung sein. Vielen Dank dafür.

Piper.

Dateien:
ma_candles.gif  15 kb
 

Könnte mir jemand sagen, wie ich das Folgende codieren kann;

Zählen Sie die Anzahl der Balken, seit ein kurzfristiger MA einen langfristigen MA gekreuzt hat.

Ich danke Ihnen!

 

EA-Code zum Wiederaufnehmen von Trades nach dem Herunterfahren.

Hallo,

Gibt es einen Beispielcode für einen EA, der die Verwaltung der Trades wieder aufnehmen kann, nachdem er gestoppt wurde und dann wieder zurückkommt?

Danke!

JForex

 

Wie wird codiert?

darvasboxes:
Könnte mir jemand sagen, wie man das Folgende codiert?

Zählen Sie die Anzahl der Balken, seit ein kurzfristiger MA einen langfristigen MA gekreuzt hat.

Ich danke Ihnen!

Ja!

Zählen Sie die Balken, seit sie sich gekreuzt haben:

int i;

bool shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,0) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,0));

bool sgLast;

for(i=0;i<iBars(NULL,0);i++) {

sgLast = shortGreater;

shortGreater = (iMA(NULL,0,8,8,MODE_SMMA,PRICE_MEDIAN,i) > iMA(NULL,0,24,8,MODE_SMMA,PRICE_MEDIAN,i));

if(shortGreater !== sgLast) {

brechen;

}

}

Die Variable i enthält dann die Anzahl der Balken seit der Kreuzung der beiden.

Sie können mir gerne etwas Geld schicken, wenn Sie es hilfreich fanden. Ich wäre Ihnen dankbar dafür.

 

Hier ist es.

Guilhermesalgado:
Ich habe es geschafft, einige Einstellungen zu ändern und endlich glaube ich, fast am Ziel zu sein! Jetzt nach der folgenden Codierung sagt es:

shortSL' - Variable nicht definiert

longSL' - Variable nicht definiert

Hier ist sie. Ich habe das, was du gemacht hast, so verändert, dass es sich kompilieren lässt. Vorsicht, Ihre Logik ist schlecht, scheint unvollständig zu sein, und es wird wahrscheinlich nicht das tun, was Sie wollen.

Aber das war's schon.

- ChazzGeld

P.S. $170 ist EXTREM billig für ein Programm. Ich schreibe ein- oder zweimal im Jahr maßgeschneiderte Investitionssoftware für fünfstellige Beträge. Programmierer, die diese Art von Arbeit übernehmen, sollten sich in Acht nehmen - Sie müssen ALLES überprüfen, um sicherzugehen, dass Sie keinen Fall übersehen. Ein Fehler ist so gut wie ein zufällig ausgewählter Händler.

Sie können mir gerne etwas Geld schicken, wenn Sie es hilfreich fanden. Ich weiß den Gedanken zu schätzen.

Dateien:
 

Code von Standard-ZigZag

Hallo

dieser Code stammt aus der Standarddatei "ZigZag.mq4"

"if (counted_bars==0 && downloadhistory) // history wurde heruntergeladen"

counted_bars==0 : prüft, ob der Wert gleich Null ist........ ist ok.

downloadhistory : es gibt keine Bedingungsprüfung, warum??? bitte löschen Sie dies

Danke!

 

Öffnen 2 ORDERS und Schließen 2 ORDERS..CONSISTENTLY.

Ich habe lange Zeit versucht, meinen EA dazu zu bringen, immer zwei Aufträge für einen Kauf oder Verkauf zu öffnen. Eine mit TP und die andere mit KEINEM. Nach dem Öffnen von 2 Aufträgen dann nicht mehr öffnen, bis Zeit zum Handel in die entgegengesetzte Richtung.

Aus irgendeinem Grund schaue ich mir die Kontohistorie an und sehe 1 Order, dann 3 Orders, dann 4 Ors, dann 2 Orders und es läuft wie Müll.

Kann JEDER Coding Master hier einen Blick werfen und mir Input geben?

Danke, !!!!!!!!!!!!!!!!

OFFENE BESTELLUNGEN

-------

BuyTicket1 = False;

BuyTicket2 = False;

while (!BuyTicket1) {

BuyTicket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, Ask + TakeProfit * Point, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

Sleep(PausebetweenOrders * 1000);}

//if (BuyTicket1 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open 1st Buy");

Sleep(1000);

while (!BuyTicket2) {

BuyTicket2 = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLoss, 0, "2nd Buy(#" + MagicNumber + ")", MagicNumber, 0, BlueViolet);

Sleep(PausebetweenOrders * 1000);}

------------

ORDERS SCHLIESSEN

------------

if(OrdersTotal() > 0) {

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);

if(OrderType() == OP_SELL){

for (int j = OrdertotalCloseSell-1; j >= 0; j --) {

PositionClosedSell = False;

AttemptsTriedCloseSell = 0;

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

while (!PositionClosedSell && AttemptsTriedCloseSell < CloseposnAttempts) {

AttemptsTriedCloseSell = AttemptsTriedCloseSell + 1;

OrderCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, MediumSeaGreen);

Sleep(PausebetweenOrders * 1000);

if( OrderCloseSell == True ) { // Position erfolgreich geschlossen.