Rohe Ideen - Seite 5

 

Stop Loss für EA

Sorry für den obigen Titel, was ich brauche, ist ein Take Profit Befehl. Ich habe keine Ahnung, wie man kodiert, möchte aber einen Take Profit zu diesem EA hinzufügen. Unten ist der Code, bitte fügen Sie Take Profit hinzu, wo nötig. Nochmals vielen Dank

Ray

extern double MaximumRisk =0.02; //%Kontostand zum Risiko pro Position

extern double DecreaseFactor =3; //Lotgröße Divisor (Reducer) während Verlustphase

extern double Lot.Margin =50; //Margin für 1 Lot

extern int Magic =69;

extern string comment ="m icwr ea";

double spread; spread =Ask-Bid;

int slip; slip =spread/Point;

int RequiredWaveHeight,b,s,cnt,ticket;

double rsi,SL,ICWR,ICWRv0,awp1,awp2,active.high,active.low,high.c,high.r,low.r,low.c;

datetime awt1,awt2,a.high.shift,a.low.shift,shift;

int init(){return(0);}

int deinit(){return(0);}

int start(){

PosCounter();

rsi=iRSI(Symbol(),1440,14,PRICE_CLOSE,0);

if(Period()==5) {RequiredWaveHeight=40;SL=50*Point;}

if(Period()==240) {RequiredWaveHeight=150;SL=100*Point;}

ICWR=iCustom(Symbol(),Zeitraum(), "ICWR",10,5,3,RequiredWaveHeight,0,0);

ICWRv0=iCustom(Symbol(),Period(), "ICWR v0", "ZigZag",10,5,3, "ActiveWave",50,RequiredWaveHeight,0,0);

awt1=ObjectGet("Activewave",OBJPROP_TIME1);

awp1=ObjectGet("Activewave",OBJPROP_PRICE1);

awt2=ObjectGet("Activewave",OBJPROP_TIME2);

awp2=ObjectGet("Activewave",OBJPROP_PRICE2);

if(awp1>awp2) {

active.high=awp1;

a.high.shift=iBarShift(Symbol(),Period(),awt1);

active.low=awp2;

a.low.shift=iBarShift(Symbol(),Periode(),awt2);}

sonst {

active.high=awp2;

a.high.shift=iBarShift(Symbol(),Periode(),awt2);

active.low=awp1;

a.low.shift=iBarShift(Symbol(),Period(),awt1);}

if(a.high.shift<a.low.shift) shift=a.high.shift;

sonst shift=a.low.shift;

high.c=NormalizeDouble(active.low+((active.high-active.low)*0.75),Digits);

high.r=NormalizeDouble(aktiv.niedrig+((aktiv.hochaktiv.niedrig)*0,618),Digits);

low.r=NormalizeDouble(active.low+((active.highactive.low)*0.382),Digits);

low.c=NormalizeDouble(active.low+((active.highactive.low)*0.25),Digits);

if(rsi>50) {

for(int i=0;i<shift;i++) {

if(Closelow.r && Low[1]>high.c && b==0) {

ticket1=OrderSend(Symbol(),OP_SELL,1.0,Bid,0,Bid+20*Point,Bid-30*Point, "expert comment",255,0,CLR_NONE);

OP_BUY,

LotsOptimized(),

Fragen,

Schlupf,

Ask-SL,

0,

Zeitraum()+Kommentar,

Magie,0,Blau);

if(ticket>0) {

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{ Print(ticket); }

else Print("Fehler beim Öffnen einer BuyStop-Order: ",GetLastError());

return(0);}}}}

if(rsi<50) {

for(int ii=0;ii<shift;ii++) {

if(Closelow.r && High[1]<low.c && s==0) {

ticket=OrderSend(Symbol(),

OP_SELL,

LotsOptimized(),

Bid,

slip,

Bid+SL,

0,

Zeitraum()+Kommentar,

Magic,0,Orange);

if(ticket>0) {

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{ Print(ticket); }

else Print("Fehler beim Öffnen der SellStop-Order: ",GetLastError());

return(0);}}}}

if(b>0) {

for(int c=0;c<shift;c++) {

if(High[1]<low.c) {

OrderClose(ticket,OrderLots(),Bid,slip,0);}}}

if(s>0) {

for(int cc=0;cc<shift;cc++) {

if(Low[1]>high.c) {

OrderClose(ticket,OrderLots(),Ask,slip,0);}}}

comments();

return(0);}

//+---------------------------FUNCTIONS------------------------------+

void PosCounter() {

b=0;s=0;ticket=0;

for(cnt=0;cnt<=OrdersTotal();cnt++) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {

if(OrderType()==OP_SELL) {

ticket=OrderTicket();

s++;}

if(OrderType()==OP_BUY) {

ticket=OrderTicket();

b++;} }}}

void comments() {

if(MarketInfo(Symbol(),MODE_SWAPLONG)>0) string swap="longs.";

sonst swap="shorts.";

if(MarketInfo(Symbol(),MODE_SWAPLONG)<0 && MarketInfo(Symbol(),MODE_SWAPSHORT)<0) swap="Ihr Broker. ";

Comment("Letzter Tick: ",TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),"\n",

"Swap favorisiert ",swap,"\n",

"Täglicher RSI= ",rsi,"\n",

"Active High: ",active.high,"\n",

"Hochverschiebung: ",a.high.shift,"\n",

"High Bestätigen: ",high.c,"\n",

"High Retrace: ",high.r,"\n",

"Low Retrace: ",low.r,"\n",

"Low Confirm: ",low.c,"\n",

"Aktiv Niedrig: ",aktiv.niedrig,"\n",

"Low shift: ",a.low.shift); }

double LotsOptimized() {

double Lots;

int Aufträge=HistoryTotal();

int Verluste=0;

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/Lot.Margin,2);

if(DecreaseFactor>0) {

for(int i=Order-1;i>=0;i--) {

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Fehler in der Historie!"); break; }

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) weiter;

if(OrderProfit()>0) break;

if(OrderProfit()<0) Verluste++; }

if(Verluste>1) lot=NormalizeDouble(lot-lot*Verluste/DecreaseFactor,2); }

if(lot<0.01) lot=0.01;

return(lot); }//end LotsOptimized

 

Vergessen Sie's...

Vergiss es...irgendwie

habe ich das TEMPLATE catfx heruntergeladen und es tauchte alles auf...

ich weiß nicht

 

kurze Frage..welche Daten INDinverse geben Sie?

Ich habe dieses Diagramm, aber ich kann nicht entziffern, welche Informationen es mir liefert.

Ich habe eine Suche durchgeführt, aber ich habe keine Beschreibung gefunden.

VIELEN DANK FÜR IHRE UNTERSTÜTZUNG

Dateien:
 

Neuer Chart deaktiviert EA?

Hallo noch einmal,

(Dies ist so ein tolles Forum, ich werde bald etwas zu teilen haben!)

Ich spiele gerade mit CodersGuru's "Your First Expert Advisor" Beispiel aus seinem MQL4 Kurs herum...

Mir ist etwas aufgefallen, von dem ich hoffe, dass es eine Lösung gibt... Nach dem Laden des EA auf dem 30M Chart... öffnete er eine (Short) Order... Ich hatte seinen Code modifiziert, um meine Exit-Strategie zu testen (ein einfaches Cross in einer niedrigeren Zeitperiode)...

Das Cross kam und ging (und der gedruckte Status, und mein Code war korrekt), ABER ich war auf dem 15M-Chart zu der Zeit... bedeutet dies, dass ich den EA deaktiviert habe (so dass mein Code/Logik nicht ausgeführt wurde)?

Wenn ja, kann man das irgendwie umgehen... Ich möchte hin und her klicken, um andere Zeitrahmen... ohne Deaktivierung der EA, die ausgeführt wird.

Vielen Dank im Voraus für die Antworten.

-charliev

 

Ist die Wirksamkeit eines Systems proportional zum Wachstum seiner Nutzer?

Glauben Sie, dass ein System seine Effektivität gewinnt oder verliert, je mehr Menschen es anwenden?

Es scheint, dass viele erfolgreiche Händler ihre Handelsstrategien normalerweise nicht teilen, also muss es einen Grund dafür geben, dass sie dies tun. Möchte sich jemand mit dieser Frage befassen?

 
TheShanghai:
Glaubt ihr, dass ein System seine Effektivität gewinnt oder verliert, wenn immer mehr Menschen es anwenden? Es scheint, dass viele erfolgreiche Händler ihre Handelsstrategien normalerweise nicht weitergeben, also muss es einen Grund dafür geben, dass sie dies tun. Möchte jemand diese Frage beantworten?

Ich habe gehört, dass viele erfolgreiche Händler in der Regel nicht ihre Handelsstrategien oder teilen Sie einige falsche Strategien vor allem. Das mag sein. Ich weiß es nicht. Weil der Forex ist Geld. Ich denke, es ist nichts mit dieser Wirksamkeit. Es ist, weil nicht so viele erfolgreiche Trader und es ist etwas mit Brokern.

BTW, ich denke, es ist persönlich. Ein Händler kann eine bestimmte Handelsstrategie anwenden und ich kann das nicht, wegen meines Charakters, meiner Gewohnheiten, meiner Zeitzone usw. Es ist also etwas Persönliches. Wie auch immer, wir können alle Strategien entdecken, wie wir es bereits hier im Forum tun.

 

danke für das Feedback. Ich werde das im Hinterkopf behalten.

 

Folgen Sie dem Trend

Hallo!

Ich habe ein einfaches, aber stabiles System, das für mich funktioniert. Ich mache Gebrauch von einem 34 EMA auf schließen. RSI 7 schließen. CCI 20 schließen. Platzieren Sie die EMA auf einem Chart und schauen Sie sich den Trend an. Beginnen Sie bei der 30M und bewegen Sie sich den ganzen Weg bis zu H4 und sogar D1. Der Trend des EMA muss für alle Zeitrahmen gleich sein. Wenn der Trend stimmt, können Sie in den Handel einsteigen, wenn der RSI im D1-Zeitrahmen über/unter 50 und der CCI über/unter 100 liegt. Bleiben Sie auf dem H4-Chart, wenn der Handel beginnt, damit Sie das Marktrauschen nicht sehen und vorzeitig schließen können. Setzen Sie einen Stoploss bei 80 Pips. Sie können auch die Fib verwenden, um zu sehen, ob der Markt ein Retracement hat oder nicht. Ich mag es, einen äquidistanten Kanal (ein Metatrader-Standard-Tool) zu verwenden, um den Markttrend zu finden. Ich halte mich an diesen Trend, bis ich meine Gewinne mache. Diese Methode ist nicht narrensicher, aber eines ist sicher, und es macht für mich jeden Tag mehr Sinn, und das ist, dass ich nicht gegen einen Haupttrend handle.

Bitte experimentieren Sie mit dieser Methode auf Demo und lassen Sie uns ein längerfristiges System, dass die Arbeit Form der mehr ernsthafte Händler.

Roets

 

Standardwert, wenn Array deklariert wird

Hallo zusammen,

Welcher Wert wird als Standardwert in dieses Array gesetzt:

double ARRAYA[];

double ARRAYB[];

Ich möchte den gesamten Inhalt dieser Arrays löschen, indem ich folgendes tue:

ArrayInitialize(ARRAYA,NULL);

ArrayInitialisieren(ARRAYB,NULL);

Das Setzen auf NULL bewirkt jedoch, dass das Array mit 0 (Null) gefüllt wird.

Irgendwelche Vorschläge?

-charliev

 

Indikator #include in EA?

Hallo zusammen,

gibt es eine Möglichkeit, einen kompilierten Indikator #include, so dass es geladen wird, wenn der EA geladen wird? (So dass der EA freistehend als 1 .EX4-Datei?)

Vielen Dank für die Hilfe!

-charliev

Grund der Beschwerde: