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
Hallo Mladen,
So sieht die Schleife für die schwebenden Aufträge aus, bei denen Multi_Indic_00 ein Oszillator und Up_Prime_00 ein definiertes Niveau ist.
//+--------------------------------------------------------------------+
//---- Prüfen und schließen, wenn der Ordertyp Limit ist und sich der Trend geändert hat.
if(OrderType()==OP_BUYLIMIT)
if(( Multi_Indic_00 ) <= (Up_Prime_00 ))
{
_OrderDelete=OrderDelete(OrderTicket());
}
if(OrderType()==OP_SELLLIMIT)
if(( Multi_Indic_00 ) >= ( Down_Prime_00 ))
{
_OrderDelete=OrderDelete(OrderTicket());
}
//+--------------------------------------------------------------------+
Nun, nichts Besonderes....
Viel Spaß beim Handeln.
Mit freundlichen Grüßen.
Kater98Tomcat98
Was ich gerne sehen würde, ist die for() Schleifenanweisung. Wenn Sie eine for-Anweisung wie diese haben :
for (int i = 0; i < OrdersTotal(); i++)
dann werden einige Aufträge übersehen, wenn in der Zwischenzeit einige Aufträge geschlossen oder gelöscht wurden. Wenn die for()-Schleife hingegen wie folgt aussieht:
for (int i = OrdersTotal()-1; i >= 0; i--)
dann werden alle Aufträge verarbeitet
Mladen ,
Oh, ich verstehe:
Hier ist es für den Abschlussprozess:
"
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue;
"
Tomcat98
Mladen ,
Ach so, ich verstehe:
Hier ist es für den Abschlussprozess:
"
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue;
"
Kater98Tomcat98
Ändern Sie die Schleife in
for(int i=BestellungenGesamt()-1;i>=0;i--)
und es sollte OK sein
Mladen,
Bingo!
Es tut jetzt genau das, was ich brauchte.
Vielen Dank für deine großartige Hilfe.
"Die Leute interessiert es nicht, wie viel du weißt, bis sie wissen, wie sehr du dich kümmerst.
- Theodore Roosevelt
Mit freundlichen Grüßen.
Kater98
Mladen,
Bingo!
Jetzt tut es genau das, was ich brauchte.
Vielen Dank für Ihre großartige Hilfe.
"Die Leute interessiert es nicht, wie viel du weißt, bis sie wissen, wie sehr du dich kümmerst.
- Theodore Roosevelt
Mit freundlichen Grüßen.
Kater98Fröhliche Codierung
Hallo Mladen, danke für alles, es funktioniert jetzt gut...
jetzt bin ich mit einem Indikator erstellt, die nicht neu geladen wird, so dass jedes Mal eine Kerze schließen ich den Indikator neu laden müssen, können Sie mir helfen, dies zu beheben?? hier ist ein Teil des Codes (ist ein Trend-Indikator auf Lücken einfache Idee, danke:
#property copyright "Copyright © 2014 Daniel Luchinger"
#property link
#property strict
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#Eigenschaft indicator_color1 clrLime
#Eigenschaft indicator_color2 clrRed
#Eigenschaft indicator_color3 clrMagenta
#Eigenschaft indicator_color4 clrCyan
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy);
SetIndexBuffer(1,FirstSell);
SetIndexBuffer(2,Buy);
SetIndexBuffer(3,Sell);
for(int i=0; i<4; i++) {
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}
SetIndexArrow (0,233);
SetIndexArrow (1,234);
SetIndexArrow (2,233);
SetIndexArrow (3,234);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[],
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
static int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-1); i>=0; i--) {
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;
datetime when=Time;
if((Hoch-Schluss)<0) {
if(lastSignal==SELL) {
FirstBuy=Close;
SoundAlert(when, "Buy");}
lastSignal=BUY;}
if((Tief-Schluss)>0){
if(letztesSignal==BUY) {
FirstSell=Close;
SoundAlert(when, "Sell");}
lastSignal=SELL;}
}
return(rates_total);}
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i) {
Alert(StringFormat("%s Signal an %s um %s",dir,Symbol(),TimeToStr(i)));
Hi Mladen, danke für alles, funktioniert jetzt gut...
jetzt bin ich mit einem Indikator erstellt, die nicht neu geladen wird, so dass jedes Mal eine Kerze schließen ich den Indikator neu laden müssen, können Sie mir helfen, dies zu beheben?? hier ist ein Teil des Codes (ist ein Trend-Indikator auf Lücken einfache Idee basiert, danke:
#property copyright "Copyright © 2014 Daniel Luchinger"
#property link
#property strict
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#Eigenschaft indicator_color1 clrLime
#Eigenschaft indicator_color2 clrRed
#Eigenschaft indicator_color3 clrMagenta
#Eigenschaft indicator_color4 clrCyan
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy);
SetIndexBuffer(1,FirstSell);
SetIndexBuffer(2,Buy);
SetIndexBuffer(3,Sell);
for(int i=0; i<4; i++) {
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}
SetIndexArrow (0,233);
SetIndexArrow (1,234);
SetIndexArrow (2,233);
SetIndexArrow (3,234);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[],
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
static int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-1); i>=0; i--) {
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;
datetime when=Time;
if((Hoch-Schluss)<0) {
if(lastSignal==SELL) {
FirstBuy=Close;
SoundAlert(when, "Buy");}
lastSignal=BUY;}
if((Tief-Schluss)>0){
if(letztesSignal==BUY) {
FirstSell=Close;
SoundAlert(when, "Sell");}
lastSignal=SELL;}
}
return(rates_total);}
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i) {
Alert(StringFormat("%s Signal an %s um %s",dir,Symbol(),TimeToStr(i)));
daniel1983
Versuchen Sie es so:
#property link ""
#property strict
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_color3 clrMagenta
#property indicator_color4 clrCyan
#define BUY 1
#define SELL 2
double Buy[],
Sell[],
FirstBuy[],
FirstSell[];
int OnInit() {
SetIndexBuffer(0,FirstBuy);
SetIndexBuffer(1,FirstSell);
SetIndexBuffer(2,Buy);
SetIndexBuffer(3,Sell);
for(int i=0; i<4; i++) {
SetIndexStyle (i,DRAW_ARROW,STYLE_SOLID,2);}
SetIndexArrow (0,233);
SetIndexArrow (1,234);
SetIndexArrow (2,233);
SetIndexArrow (3,234);
return(INIT_SUCCEEDED);}
void OnDeinit(const int reason) {}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[],
const double &close[], const long &tick_volume[], const long &volume[],
const int &spread[]) {
static int lastSignal=0;
for(int i=MathMin(rates_total-prev_calculated, rates_total-2); i>=0; i--)
{
FirstBuy=FirstSell=Buy=Sell=EMPTY_VALUE;
datetime when=Time;
if((High-Close)<0) {
if(lastSignal==SELL) {
FirstBuy=Close;
SoundAlert(when,"Buy");}
lastSignal=BUY;}
if((Low-Close)>0){
if(lastSignal==BUY) {
FirstSell=Close;
SoundAlert(when,"Sell");}
lastSignal=SELL;}
}
return(rates_total);
}
void SoundAlert(datetime i, string dir) {
static datetime lastAlert=0;
if(lastAlert!=i) {
Alert(StringFormat("%s signal on %s at %s",dir,Symbol(),TimeToStr(i)));
}
}
Hallo Mladen, danke, aber wenn ich den Code so schreibe, fehlen die Signale. Bitte schauen Sie sich das an, ich habe ein Bild gemacht, in dem ich sie auf dem Tages-Chart USDJPY vergleiche:
Woran kann das liegen?
Hallo Mladen, danke, aber wenn ich den Code so schreibe, fehlen die Signale. Bitte schauen Sie sich das an, ich habe ein Bild gemacht, in dem ich sie auf dem Tages-Chart USDJPY vergleiche: Woran kann das liegen?
daniel1983
In Ihrem Code haben Sie Future-Werte (diese :
Hoch-Schluss
Tief-Schluss
Ich habe Close verwendet - was ein normaler vorheriger Wert ist. Ändern Sie es auf aber dann wird es neu gezeichnet
Liebe mrtools und mladen
kann mir jemand helfen? Tom Demark Moving Average ist ein Schlüsselindikator in meiner Strategie, jedoch wäre ein Alarm sehr nützlich, wenn ein neuer Boden angezeigt wird; ich wäre sehr dankbar, wenn ein Alarm in den Indikator codiert werden könnte. Ich freue mich auf Ihre freundliche Unterstützung.
Vielen Dank!