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 zusammen,
Dies ist eine dumme Frage, und ich weiß, ich habe es irgendwo vor gesehen, aber ich brauche Hilfe.
Ich kodiere einen benutzerdefinierten Indikator, und alles, was ich möchte, dass es zu tun ist, lesen Sie den aktuellen Geldkurs auf NUR DER BEGINN eines neuen bar. Ich kann nicht einfach Open[0] verwenden, denn jedes Mal, wenn ein neuer Tick kommt, wird der Open-Wert für den aktuellen Balken zurückgegeben. Ich möchte, dass der Wert nur einmal zurückgegeben wird, bis ein neuer Balken gebildet wird.
Ich weiß, dass ich hier etwas ganz Einfaches übersehe, aber ich habe ein paar Probleme, es herauszufinden. Kann mir jemand helfen?
Danke!
-wolfe
Hallo zusammen,
Dies ist eine dumme Codierung Frage, und ich weiß, ich habe es irgendwo vor gesehen, aber ich brauche Hilfe.
Ich kodiere einen benutzerdefinierten Indikator, und alles, was ich möchte, dass er den aktuellen Geldkurs NUR am ANFANG eines neuen Balkens liest. Ich kann nicht einfach Open[0] verwenden, denn jedes Mal, wenn ein neuer Tick kommt, wird der Open-Wert für den aktuellen Balken zurückgegeben. Ich möchte, dass der Wert nur einmal zurückgegeben wird, bis ein neuer Balken gebildet wird.
Ich weiß, dass ich hier etwas ganz Einfaches übersehe, aber ich habe ein paar Probleme, es herauszufinden. Kann mir jemand helfen?
Danke!
-wolfeSpeichern Sie einfach die aktuelle Barzeit (Time[0]) - wenn sich dieser Wert ändert, haben Sie einen neuen Bar, also holen Sie Ihren Preis, speichern Sie den neuen Wert und wiederholen Sie den Vorgang...
Speichern Sie einfach die aktuelle Barzeit (Time[0]) - wenn sich dieser Wert ändert, haben Sie einen neuen Bar, also holen Sie Ihren Preis, speichern Sie den neuen Wert und wiederholen Sie den Vorgang...
Danke Omelett,
Daran hätte ich denken sollen, ich bin ein bisschen enttäuscht von mir selbst!
Danke für die Hilfe!
Kann mir jemand zeigen, was ich bei diesem Code falsch mache?
Ich würde gerne mehr Zeitrahmen hinzufügen, wie z.B. Daily, aber ich weiß nicht, was ich falsch mache
//| #MTF_Hi_Low_Middle.mq4
//| Basis von spudfibo.Upgrade von Darkkiller
//: Danke an Mladen für die Hilfe bei der Korrektur
//+------------------------------------------------------------------+
#property indicator_chart_window
extern string note1 = "H4 Higher,Middle,Lower Farben";
externe Farbe H4HigherColor = DeepSkyBlue;
externe Farbe H4MiddleColor = Gelb;
externe Farbe H4LowerColor = HotPink;
extern string note2 = "H4 Higher, Lower und Middle zeichnen?";
extern bool H4HiLow = wahr;
extern bool H4Mid = wahr;
extern string note3 = "D1 Höhere,Mittlere,Niedrigere Farben";
externe Farbe D1HigherColor = DeepSkyBlue;
externe Farbe D1MiddleColor = Gelb;
externe Farbe D1LowerColor = HotPink;
extern string note4 = "D1 Höher, Tiefer und Mittlerer zeichnen?";
extern bool D1HiLow = wahr;
extern bool D1Mid = true;
double HiPrice, LoPrice, Range, D1HiPrice, D1LoPrice, D1Range;
datetime StartTime;
int init()
{
return(0);
}
int deinit()
{
ObjectDelete("H4Higher");
ObjectDelete("H4Lower");
ObjectDelete("H4Middle");
ObjectDelete("D1Higher");
ObjectDelete("D1Unter");
ObjectDelete("D1Middle");
return(0);
}
//+------------------------------------------------------------------+
//| Fibo zeichnen
//+------------------------------------------------------------------+
int DrawFibo()
{
///////////////////////////////////////////HILO/////
if(H4HiLow)
{
if(ObjectFind("H4Higher") == -1)
ObjectCreate("H4Higher", OBJ_FIBO, 0, StartTime, HiPrice+Range, StartTime, HiPrice);
sonst
{
ObjectSet("H4Higher",OBJPROP_TIME2, StartTime);
ObjectSet("H4Higher",OBJPROP_TIME1, StartTime);
ObjectSet("H4Higher",OBJPROP_PRICE1,HiPrice+Range);
ObjectSet("H4Higher",OBJPROP_PRICE2,HiPrice); ObjectSet("H4Higher",OBJPROP_PRICE2,HiPrice);
}
ObjectSet("H4Higher", OBJPROP_LEVELCOLOR, H4HigherColor);
ObjectSet("H4Higher", OBJPROP_FIBOLEVELS,1);
ObjectSet("H4Higher", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("H4Higher", 0, "H4 HIGHER- %$");
ObjectSet("H4Higher", OBJPROP_RAY,true);
ObjectSet("H4Higher", OBJPROP_BACK,true);
ObjectSet("H4Higher", OBJPROP_COLOR,EMPTY);
if(ObjectFind("H4Lower") == -1)
ObjectCreate("H4Lower", OBJ_FIBO, 0, StartTime, LoPrice-Range, StartTime, LoPrice);
sonst
{
ObjectSet("H4Lower", OBJPROP_TIME2, StartTime);
ObjectSet("H4Lower", OBJPROP_TIME1, StartTime);
ObjectSet("H4Lower", OBJPROP_PRICE1,LoPrice-Range);
ObjectSet("H4Lower", OBJPROP_PRICE2,LoPrice); ObjectSet("H4Lower", OBJPROP_PRICE2,LoPrice);
}
ObjectSet("H4Lower", OBJPROP_LEVELCOLOR, H4LowerColor);
ObjectSet("H4Lower", OBJPROP_FIBOLEVELS, 1);
ObjectSet("H4Lower", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("H4Lower", 0, "H4 LOWER - %$");
ObjectSet("H4Lower", OBJPROP_RAY, true);
ObjectSet("H4Lower", OBJPROP_BACK, true);
ObjectSet("H4Lower", OBJPROP_COLOR, EMPTY);
}
if(D1HiLow)
{
if(ObjectFind("D1Higher") == -1)
ObjectCreate("D1Higher", OBJ_FIBO, 0, D1StartTime, D1HiPrice+D1Range, D1StartTime, D1HiPrice);
sonst
{
ObjectSet("D1Higher", OBJPROP_TIME2, D1StartTime);
ObjectSet("D1Higher", OBJPROP_TIME1, D1StartTime);
ObjectSet("D1Higher", OBJPROP_PRICE1, D1HiPrice+D1Range);
ObjectSet("D1Höher", OBJPROP_PRICE2, D1HiPrice); ObjectSet("D1Höher", OBJPROP_PRICE2, D1HiPrice);
}
ObjectSet("D1Higher", OBJPROP_LEVELCOLOR, D1HigherColor);
ObjectSet("D1Higher", OBJPROP_FIBOLEVELS,1);
ObjectSet("D1Higher", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("D1Higher", 0, "H4 HIGHER- %$");
ObjectSet("D1Higher", OBJPROP_RAY, true);
ObjectSet("D1Höher", OBJPROP_BACK, true); ObjectSet("D1Höher", OBJPROP_BACK, true);
ObjectSet("D1Higher", OBJPROP_COLOR, EMPTY);
if(ObjectFind("D1Lower") == -1)
ObjectCreate("D1Lower", OBJ_FIBO, 0, D1StartTime, D1LoPrice-D1Range, D1StartTime, 1LoPrice);
sonst
{
ObjectSet("D1Lower", OBJPROP_TIME2, D1StartTime);
ObjectSet("D1Niedriger", OBJPROP_TIME1, D1StartTime);
ObjectSet("D1Niedriger", OBJPROP_PRICE1, D1LoPrice-D1Range);
ObjectSet("D1Niedriger", OBJPROP_PRICE2, D1LoPrice);
}
ObjectSet("D1Lower", OBJPROP_LEVELCOLOR, D1LowerColor);
ObjectSet("D1Unter", OBJPROP_FIBOLEVELS,1);
ObjectSet("D1Lower", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("D1Lower", 0, "H4 LOWER - %$");
ObjectSet("D1Lower", OBJPROP_RAY, true);
ObjectSet("D1Unter", OBJPROP_BACK, true);
ObjectSet("D1Unter", OBJPROP_COLOR, EMPTY);
}
/////////////////////////////////////////HILO////////
/////////////////////////////////////////MIDDLE////
if(H4Mid)
if(ObjectFind("H4Middle") == -1)
ObjectCreate("H4Middle", OBJ_FIBO, 0, StartTime, HiPrice, StartTime+PERIOD_H4*60, LoPrice);
sonst
{
ObjectSet("H4Middle", OBJPROP_TIME2, StartTime);
ObjectSet("H4Middle", OBJPROP_TIME1, StartTime+PERIOD_H4*60);
ObjectSet("H4Middle", OBJPROP_PRICE1, HiPrice);
ObjectSet("H4Middle", OBJPROP_PRICE2, LoPrice); ObjectSet("H4Middle", OBJPROP_PRICE2, LoPrice);
}
ObjectSet("H4Middle", OBJPROP_LEVELCOLOR, H4MiddleColor);
ObjectSet("H4Middle", OBJPROP_FIBOLEVELS,1);
ObjectSet("H4Middle", OBJPROP_FIRSTLEVEL+0,0.500); ObjectSetFiboDescription("H4Middle", 0, "H4 MIDDLE - %$");
ObjectSet("H4Middle", OBJPROP_RAY, true);
ObjectSet("H4Middle", OBJPROP_BACK, true);
ObjectSet("H4Middle", OBJPROP_COLOR, EMPTY); ObjectSet("H4Middle", OBJPROP_COLOR, true);
}
if(D1Mid)
if(ObjectFind("D1Middle") == -1)
ObjectCreate("D1Middle", OBJ_FIBO, 0, D1StartTime, D1HiPrice, D1StartTime+PERIOD_D1*60, D1LoPrice);
sonst
{
ObjectSet("D1Middle", OBJPROP_TIME2, D1StartTime);
ObjectSet("D1Middle", OBJPROP_TIME1, D1StartTime+PERIOD_D1*60);
ObjectSet("D1Middle", OBJPROP_PRICE1, D1HiPrice);
ObjectSet("D1Middle", OBJPROP_PRICE2, D1LoPrice);
}
ObjectSet("D1Middle", OBJPROP_LEVELCOLOR, D1MiddleColor);
ObjectSet("D1Middle", OBJPROP_FIBOLEVELS,1);
ObjectSet("D1Middle", OBJPROP_FIRSTLEVEL+0,0.500); ObjectSetFiboDescription("D1Middle", 0, "D1 MIDDLE - %$");
ObjectSet("D1Middle", OBJPROP_RAY, true);
ObjectSet("D1Middle", OBJPROP_BACK, true);
ObjectSet("D1Middle", OBJPROP_COLOR, EMPTY);
}
/////////////////////////////////////////MIDDLE////
//+-----------------------------------------------+
//| Indikator Startfunktion
//+-----------------------------------------------+
int start()
{
int shift = iBarShift(NULL, PERIOD_D1, Time[0]) + 1; // H4
HiPreis = iHigh(NULL, PERIOD_H4, shift);
LoPreis = iLow (NULL, PERIOD_H4, shift);
StartTime = iTime(NULL, PERIOD_H4, shift);
D1HiPreis = iHigh(NULL, PERIOD_D1, Verschiebung);
D1LoPreis = iLow (NULL, PERIOD_D1, Verschiebung);
D1StartTime = iTime(NULL, PERIOD_D1, shift);
if(TimeDayOfWeek(StartTime) == 0/*Sonntag*/)
{//Freitagshoch und -tief hinzufügen
HiPreis = MathMax(HiPreis, iHigh(NULL,PERIOD_H4, shift+1));
LoPreis = MathMin(LoPreis, iLow(NULL,PERIOD_H4, shift+1));
D1HiPreis = MathMax(D1HiPreis, iHigh(NULL, PERIOD_D1, shift+1));
D1LoPreis = MathMin(D1LoPreis, iLow(NULL, PERIOD_D1, shift+1));
}
Range = HiPrice - LoPrice;
D1Range = D1HiPrice - D1LoPrice;
DrawFibo();
return(0);
}
//+------------------------------+
Darunter füge ich das Original für H4 high low mid an
Ich bitte um Hilfe, ich versuche, den Delta-Stop als Stop-Loss und Trailing-Stop zu verwenden.
und Trailing-Stop zu verwenden. Im Anhang ist der EA.
Ist es möglich, dies zu tun.
//+------------------------------------------------------------------+
//| MODIFIED BY Avery T. Horton, Jr. aka TheRumpledOne |
//| |
//| |
//|
//
// google suche "therumpledone mt4"
//
//+------------------------------------------------------------------+
//| _Fibo_Hi_Low_Middle.mq4
//| Basis von spudfibo.Upgrade von Darkkiller
//: Danke an Mladen für die Hilfe bei der Korrektur
//+------------------------------------------------------------------+
#property indicator_chart_window
extern int myChartPeriod = 0 ;
extern string note1 = "Höhere, mittlere, untere Farben";
extern color HöhereFarbe = DeepSkyBlue;
externe Farbe MiddleColor = Gelb;
externe Farbe LowerColor = HotPink;
extern string note2 = "Mitte zeichnen?";
extern bool HiLow = true;
extern bool Mid = true;
double HiPrice, LoPrice, Range;
datetime StartTime;
string tChartPeriod, tHigher, tLower, tMiddle ;
int init()
{
if(myChartPeriod == 0) { myChartPeriod = Period() ; }
tChartPeriod = TimeFrameToString(myChartPeriod) ;
tHigher = tChartPeriod + "H" ;
tLower = tChartPeriod + "L" ;
tMiddle = tChartPeriod + "M" ;
return(0);
}
int deinit()
{
ObjectDelete(tHigher);
ObjectDelete(tLower);
ObjectDelete(tMiddle);
return(0);
}
//+------------------------------------------------------------------+
//| Fibo zeichnen
//+------------------------------------------------------------------+
int DrawFibo()
{
if(HiLow)
{
if(ObjectFind(tHigher) == -1)
ObjectCreate(tHigher,OBJ_FIBO,0,StartTime,HiPrice+Range,StartTime,HiPrice);
sonst
{
ObjectSet(tHigher,OBJPROP_TIME2, StartTime);
ObjectSet(tHigher,OBJPROP_TIME1, StartTime);
ObjectSet(tHigher,OBJPROP_PRICE1,HiPrice+Range);
ObjectSet(tHigher,OBJPROP_PRICE2,HiPrice);
}
ObjectSet(tHigher,OBJPROP_LEVELCOLOR,HigherColor);
ObjectSet(tHigher,OBJPROP_FIBOLEVELS,1);
ObjectSet(tHigher,OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSetFiboDescription(tHigher,0,tChartPeriod+" HIGHER- %$");
ObjectSet(tHigher,OBJPROP_RAY,true);
ObjectSet(tHigher,OBJPROP_BACK,true);
ObjectSet(tHigher,OBJPROP_COLOR,EMPTY);
if(ObjectFind(tLower) == -1)
ObjectCreate(tLower,OBJ_FIBO,0,StartTime,LoPrice-Range,StartTime,LoPrice);
sonst
{
ObjectSet(tLower,OBJPROP_TIME2, StartTime);
ObjectSet(tLower,OBJPROP_TIME1, StartTime);
ObjectSet(tLower,OBJPROP_PRICE1,LoPrice-Range);
ObjectSet(tLower,OBJPROP_PRICE2,LoPrice);
}
ObjectSet(tLower,OBJPROP_LEVELCOLOR,LowerColor);
ObjectSet(tUnter,OBJPROP_FIBOLEVELS,1);
ObjectSet(tLower,OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSetFiboDescription(tLower,0,tChartPeriod+" LOWER - %$");
ObjectSet(tLower,OBJPROP_RAY,true);
ObjectSet(tLower,OBJPROP_BACK,true);
ObjectSet(tLower,OBJPROP_COLOR,EMPTY);
}
/////////////////////////////////////////MIDDLE///////////////////////////
if(Mid)
if(ObjectFind(tMiddle) == -1)
ObjectCreate(tMiddle,OBJ_FIBO,0,StartTime,HiPrice,StartTime+myChartPeriod*60,LoPrice);
sonst
{
ObjectSet(tMiddle,OBJPROP_TIME2, StartTime);
ObjectSet(tMiddle,OBJPROP_TIME1, StartTime+myChartPeriod*60);
ObjectSet(tMiddle,OBJPROP_PRICE1,HiPrice);
ObjectSet(tMiddle,OBJPROP_PRICE2,LoPrice);
}
ObjectSet(tMiddle,OBJPROP_LEVELCOLOR,MiddleColor);
ObjectSet(tMiddle,OBJPROP_FIBOLEVELS,1);
ObjectSet(tMiddle,OBJPROP_FIRSTLEVEL+0,0.500);
ObjectSetFiboDescription(tMiddle,0,tChartPeriod+" MIDDLE - %$");
ObjectSet(tMiddle,OBJPROP_RAY,true);
ObjectSet(tMiddle,OBJPROP_BACK,true);
ObjectSet(tMiddle,OBJPROP_COLOR,EMPTY);
}
//+------------------------------------------------------------------+
//| Indikator Startfunktion
//+------------------------------------------------------------------+
int start()
{
int shift = iBarShift(NULL,myChartPeriod,Time[0]) + 1; //
HiPrice = iHigh(NULL,myChartPeriod,shift);
LoPreis = iLow(NULL,myChartPeriod,shift);
StartTime = iTime(NULL,myChartPeriod,shift);
if(TimeDayOfWeek(StartTime)==0/*Sonntag*/)
{//Freitagshoch und -tief hinzufügen
HiPrice = MathMax(HiPrice,iHigh(NULL,myChartPeriod,shift+1));
LoPreis = MathMin(LoPreis,iTief(NULL,myChartPeriod,shift+1));
}
Range = HiPrice-LoPrice;
DrawFibo();
// Comment( "Zeitraum_", tChartPeriod ) ;
return(0);
}
//+------------------------------------------------------------------+
string TimeFrameToString(int tf)
{
string tfs;
switch(tf) {
case PERIOD_M1: tfs="M1" ; break;
case PERIOD_M5: tfs="M5" ; break;
case PERIOD_M15: tfs="M15" ; break;
case PERIOD_M30: tfs="M30" ; break;
case PERIOD_H1: tfs="H1" ; break;
case PERIOD_H4: tfs="H4" ; break;
case PERIOD_D1: tfs="D1" ; break;
case PERIOD_W1: tfs="W1" ; break;
case PERIOD_MN1: tfs="MN";
}
return(tfs);
}
So habe ich es gemacht.
P.S.: Warum werden meine Anhänge gelöscht?
MoveStopOnce
Hallo, ich versuche, diesen MoveStopOnce-Code zum Laufen zu bringen, aber die Sell-Trades scheinen nicht durch den Code geändert zu werden, nur die Buys. Stimmt irgendetwas nicht?
//Buys
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
[/code]
[code]
//Sells
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
MoveStopOnce
Ich habe dieses Problem gehabt.
Ich denke, Sie müssen Folgendes hinzufügen:
if (OrderType() == OP_BUY)
UND OP_SELL für den Verkaufscode verwenden.
Groß sein
Ich hatte dieses Problem auch schon.
Ich denke, Sie müssen hinzufügen:
if (OrderType() == OP_BUY)
UND OP_SELL für den Verkaufscode verwenden.
Großer BeOk, ich werde es versuchen, wenn ich zu Hause bin, aber warum funktioniert es dann immer noch mit Kaufaufträgen?
Danke