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
für CEHansen
Hallo,
In dem Teil, in dem du die Balken einzeln nimmst, musst du überall die Variable i anstelle von Current verwenden. Current ist uninitialisiert, also ist es 0.
Der einfachste Weg, das zu sehen, ist, innerhalb des for am Anfang folgendes zu schreiben:
Current = i;
Die Pfeile werden erscheinen. Vergessen Sie auch nicht, einen größeren Wert für Sto_Lookback zu verwenden. Vielleicht 100,1000 oder etwas in der Art.
P.S. Mach das for so, das ist aus meiner Sicht besser.
for (int i = Sto_Lookback; i >0; i--){
...
}
Weil das die normale Art und Weise ist, wie die "Balken" kommen, 0 ist der letzte. Das würde Ihnen später einige andere Probleme ersparen. (z.B. - neu malen). Nur ein Gedanke.
Vielen Dank!
Victor
Klinger Volumen Oszillator
Ich habe mir diesen Indikator angeschaut, er sieht interessant aus.
Allerdings beruht er zum Teil auf dem Volumen, das im Forex nicht wirklich verfügbar ist.
Großes Be
Order Modify Fehler 1
Bei meinem Backtesting erhalte ich immer wieder den gelegentlichen "OrderModify error1". Soweit ich weiß, bedeutet dies, dass es keine Änderung gibt, d.h. die OrderModify()-Argumente sind die gleichen wie die entsprechenden Parameter der geänderten Order.
Dies könnte auf ein Problem mit einem doppelten Vergleich zurückzuführen sein.
Die Frage ist, wie kann ich dieses Problem lösen?
Hier ist der Bereich, von dem ich glaube, dass er das Problem verursacht:
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
fortfahren;
}
//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;
fortfahren;
}
}
}
//Trailing-Stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
fortfahren;
}
}
}
} sonst {
//Schließen
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
weiter;
}
//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;
fortfahren;
}
}
}
//Trailing-Stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
fortfahren;
}
}
}
}
}
}
Code Frage
Was bedeutet i++ oder i-- in der Codierung?
Beispiel: for (int i=5; i>0; i--)
Was bedeutet i++ oder i-- in der Codierung? z.B.: for (int i=5; i>0; i--)
In C-basierten Sprachen ist dies die Abkürzung für das Inkrementieren oder Dekrementieren einer auf Zahlen basierenden Variablen.
In Visual Basic müssten Sie zum Beispiel schreiben.
i = i + 1 schreiben, um die Variable i zu inkrementieren.
In C können Sie jedoch einfach i++ schreiben.
Hoffentlich hilft das.
Hiachiever
Es ist eine Abkürzung in C-basierten Sprachen für das Inkrementieren oder Dekrementieren einer zahlenbasierten Variablen.
In Visual Basic müssten Sie zum Beispiel schreiben.
i = i + 1 schreiben, um die Variable i zu inkrementieren.
In C können Sie jedoch einfach i++ schreiben.
Ich hoffe, das hilft.
HiachieverDanke!
wenn ich also if (int i=6; i>0; i++)
schreibe, wird es eine Schleife bilden oder den Wert bis zum Höchstwert von 6 überprüfen? ich bin nicht sicher, ob das richtig ist. Was ist, wenn ich i-- verwende? Bitte klären
Danke!
Wenn ich also if (int i=6; i>0; i++)
es wird eine Schleife durchlaufen oder der Wert wird bis maximal 6 geprüft? ich bin nicht sicher, ob das richtig ist. Was ist, wenn ich i-- verwende? Bitte klärenMatrixebiz,
wenn Sie bei 6 beginnen und bis 0 zurückgehen wollen, dann verwenden Sie i--
(int i=6; i>0; i--)
Dies beginnt bei 6 und dekrementiert in jeder Schleife um 1, solange I > 0 ist.
Wenn Sie 0 einschließen wollen, verwenden Sie i>=0.
Zum Wohl,
Hiachiever
Matrixebiz,
Wenn Sie bei 6 beginnen und bis 0 zurückgehen wollen, verwenden Sie i--
(int i=6; i>0; i--)
Dies beginnt bei 6 und dekrementiert in jeder Schleife um 1, solange I > 0 ist.
Wenn Sie 0 einschließen wollen, verwenden Sie i>=0.
Zum Wohl,
HiachieverOk, wenn ich also if (int i=6; i>0; i++)
setze, dann beginnt es bei 6 und geht weiter mit 1, 2, 3 ... 6, richtig?
Ok, wenn ich also if (int i=6; i>0; i++) einfüge, dann beginnt es bei 6 und geht weiter mit 1, 2, 3 ... 6, richtig?
Nicht ganz, wenn das, was Sie dort tun wollen, bei 6 endet.
Der Code würde in diesem Fall lauten
For (int i=1; i<=6; i++)
Dies beginnt bei 1 und endet bei 6, wobei in jeder Schleife um 1 erhöht wird.
Zum Wohl,
Hiachiever