Wie programmiert man? - Seite 43

 
jimven:
Flytox: Ich kann diesen Code in meiner Kopie von TrendStrength nicht finden.

Es ist TrendStrength v2.2

 

Benutzerdefinierter Preismodus

Weiß jemand, wie man einen benutzerdefinierten Preismodus erstellt? Ich verwende den folgenden Alarm, um zu signalisieren, wenn der Preis (extern int PriceMode = 6; //(high+low+close+close)/4) einen MA überschreitet. Ich möchte diesen Modus anpassen, indem ich einen Offset, z. B. 1 oder 2 %, hinzufüge. Ist dies möglich? Etwa so:

extern int PriceMode = ((high+low+close+close)/4) * 1.01

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

#property indicator_chart_window

extern int MA1.period =5; //Periode 5

extern int MA1.shift=0;

extern int MA1.methode=2; //SMMA

extern int lMA1.price=2; //MA auf Kerzenhoch gesetzt

extern int sMA1.price=3; //MA auf Kerzentiefpunkt gesetzt

extern int PriceMode = 6; //(Hoch+Tief+Schluss+Schluss)/4

int cBar,pBarLong,pBarShort;

int start()

{

cBar = Time[0];

if(CheckMACross(1)== 1 && cBar!=pBarLong ) {EmailAlert(1); pBarLong=cBar;}

sonst

if(CheckMACross(2)==-1 && cBar!=pBarShort) {EmailAlert(2); pBarShort=cBar;}

return(0);

}

int CheckMACross(int mode)

{

if(mode==1) int price = lMA1.price;

sonst

if(mode==2) price = sMA1.price;

double price1 = iMA(Symbol(),0,1,0,1,PriceMode,1);

double ma1 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,1);

double price0 = iMA(Symbol(),0,1,0,1,PriceMode,0);

double ma0 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,0);

if(ma1 > price1 && ma0 <= price0) return( 1);

sonst

if(ma1 = price0) return(-1);

sonst

return(0);

}

{

if(mode == 1) SendMail("Signal für LONG",Symbol()+" Go Long"); //SendMail

sonst

if(Modus == 2) SendMail("Signal für SHORT",Symbol()+" Gehe Short");//SendMail

}

int lastBAlert = 0;

int lastSAlert = 0;

void EmailAlert(int mode)

{

if(mode == 2 && lastSAlert < Time[0] )

{

SendMail("Gehe kurz 1",Symbol()+" Gehe kurz 1"); //SendMail

lastSAlert = Time[0];

}

}

 
vonokpasah:
Ich appelliere an die Experten da draußen, um bitte zu meiner Hilfe kommen ich brauche einige, um mir zu helfen buld ein EXPERT ADVISER META 4 TRADER für mich wäre ich greatfull, wenn meine Anfrage gewährt wird.

Es gibt Millionen von Möglichkeiten, einen Experten zu bauen, an welchen Weg haben Sie gedacht?

 

Quellcode Hilfe!

Hallo an alle

ich habe einen EA und möchte ihm eine Eingabe hinzufügen

Wenn Take Profit >= :xx , kaufe :xx Lot

extern int Deltaopen1 =100;

Ich habe geschrieben;

if (type == OP_BUY)

{

if (M2.BuyCnt == 0 && OrderTakeProfit() > OrderOpenPrice() + Deltaopen1*point)

{

Buy(Symbol(), GetLots2(), Ask, 0, 0, Magic2);

zurückgeben;

}

}

if (type == OP_SELL)

{

if (M2.SellCnt == 0 && OrderTakeProfit() <= OrderOpenPrice() - Deltaopen1*point)

{

Sell(Symbol(), GetLots2(), Bid, 0, 0, Magic2);

zurück;

}

}

}

Aber es funktioniert nicht,

Ich bin für jede Hilfe dankbar.

Dankeschön

 

Brauche ein wenig Hilfe bei der Verfeinerung dieses EA

Ich habe diesen EA, der eine modifizierte Version des "GAPS EA" ist, den ich an anderer Stelle in diesem Forum gefunden habe.

Wie auch immer, beigefügt ist eine Kopie des Codes.

#property link ""

//---- input parameters

extern int min_gapsize = 1;

extern double lotsize_gap = 5;

extern int MagicNumber = 10;

//----

datetime order_time = 0;

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

//| expert initialization function |

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

int init()

{

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

return(0);

}

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

//| expert start function |

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

int start()

{

/*

Thing to be done in future in this program to make it more efficient

and more powerful:

1. Make the dicission of the quantity of lots used according to

the scillators;

2. This program will catch the gaps.

Things to ware of:

1. the spread;

2. excuting the order not on the gap ends a little bit less.

*/

// Defining the variables to decide.

Print("order time", order_time);

double current_openprice = iOpen(Symbol(), 0, 0);

double previous_highprice = iHigh(Symbol(), 0, 1);

double previous_lowprice = iLow(Symbol(), 0, 1);

double point_gap = MarketInfo(Symbol(), MODE_POINT);

int spread_gap = MarketInfo(Symbol(), MODE_SPREAD)+1;

datetime current_time = iTime(Symbol(), 0, 0);

// catching the gap on sell upper gap

if(current_openprice > previous_highprice + (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

int ticket = OrderSend(Symbol(), OP_SELL, lotsize_gap, Bid, 0, 0,

previous_highprice + spread_gap,

"Gapped Up Sell " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Red);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (sell) :-)", order_time);

//----

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//catching the gap on buy down gap

if(current_openprice < previous_lowprice - (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

ticket = OrderSend(Symbol(), OP_BUY, lotsize_gap, Ask, 0, 0,

previous_lowprice - spread_gap,

"Gapped Down Buy " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Green);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (buy) :-)", order_time);

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//----

return(0);

}

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

Immer wenn ich diesen Code in den Strategietester einfüge, werden keine Trades eröffnet. Ein kurzer Blick in das Journal zeigt mir, dass viele Orders getätigt wurden. Was habe ich falsch gemacht?

 

Hilfe: Grundlegende Frage zum Histogramm

Wahrscheinlich ist dies wirklich einfach und ich suche an etwas vorbei, aber ich habe keine Ressourcen mehr und kann keine Antwort finden.

Alles, was ich versuche, ist, den Wert des zuvor gezeichneten Histogrammbalkens abzurufen.

Hat jemand eine Idee?

D.h. Close[1] zeigt den letzten geschlossenen Balken im Chart an.....

Was würde also den zuletzt gezeichneten Histogrammbalken in diesem separaten Fensterindikator anzeigen?

Vielen Dank für jeden Ratschlag im Voraus.

-dharsant

 
dharsant:
Wahrscheinlich ist es wirklich einfach und ich habe etwas übersehen, aber ich habe keine Ressourcen mehr und kann keine Antwort finden.

Ich versuche lediglich, den Wert des zuvor gezeichneten Histogrammbalkens abzurufen.

Hat jemand eine Idee?

D.h. Close[1] zeigt den letzten geschlossenen Balken im Chart an.....

Was würde also den zuletzt gezeichneten Histogrammbalken in diesem separaten Fensterindikator anzeigen?

Vielen Dank für jeden Hinweis im Voraus.

-dharsant

Welchen Indikator rufen Sie auf? Stellen Sie einfach den Shift so ein, dass der vorherige Balken aufgerufen wird.

Beispiel, für einen gleitenden Durchschnitt des aktuellen Balkens:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0);

Für einen gleitenden Durchschnitt des vorherigen Balkens:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1);

Der letzte Parameter beim Aufruf eines Indikators gibt an, wie viele Balken ab dem aktuellen gelesen werden sollen.

Ich hoffe, das ist, wonach Sie gesucht haben.

 

Coding Hilfe benötigt bitte

Ich versuche, ein paar verschiedene Indikatoren in einem ea zu verwenden, kann aber nicht herausfinden, wie man sie in das System implementiert. Welchen Teil des Indikators verwende ich, um zu sagen, kaufen oder verkaufen. Wie bekomme ich Slope Direction Line in einen Teil eines EAs.

Vielen Dank

Beno

Dateien:
 

Ich habe mich wahrscheinlich nicht ganz richtig erklärt.

Ich versuche herauszufinden, was ich in iCustom eingeben muss und habe folgendes getan.

double SDL=iCustom(NULL,0, "Slope Direction Line",period,method,price)

Und was ich tun muss, um Kauf- und Verkaufssignale vom Slope Direction Line Indicator für meinen EA zu generieren. Unten ist, was ich bisher getan habe, es kompiliert, aber keine Positionen werden generiert.

bool Long = TML && SDL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose;

bool Short = TMS && SDL && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose;

Jede Hilfe wäre großartig

Vielen Dank

Beno

 

Erstens benötigt der iCustom-Aufruf am Ende zwei zusätzliche Argumente, nämlich aus welchem der Indikatorpuffer gelesen werden soll und bei welchem Index gelesen werden soll.

Zweitens ist "SDL" eine doppelte Zahl, so dass die Angabe von "SDL" als Bedingung etwas verwirrend ist; möglicherweise wird es als "SDL != 0" kompiliert, und möglicherweise ist das auch so gemeint.