Hi,
ich habe versucht den Code in vernünftiger Form mal dar zu stellen.
Für weitere Hinweise zur Darstellung/Schreibweise bin ich dankbar.
Alles beginnt mit:
1. Schritt: durch eine input Variable wird der Grid_Abstand = zB.: 200 definiert
2. Schritt: Ermittlung vom Preislevel: PREISLEVEL() = OrderOpenPrice() der aktuellen MARKET-Order
3. Schritt: Grid-Bereiche bzw. die Ober-/Untergrenzen der Grid-Bereiche ermitteln
Code:
double GRID_LOWER_1_HIGH()
{
double Grid_Lower_1_High = PREISLEVEL() - (1 * Grid_Abstand * Point) + (Grid_Abstand / 2) * Point;
return(Grid_Lower_1_High);
}
double GRID_LOWER_1_LOW()
{
double Grid_Lower_1_Low = PREISLEVEL() - (1 * Grid_Abstand * Point) - (Grid_Abstand / 2) * Point;
return(Grid_Lower_1_Low);
}
Sobald das gemacht ist, soll die
Prüfung erfolgen, ob der jeweilige OrderType() in dem ermittelten Grid-Bereich (also zwischen Ober-/Untergrenze) vorliegt.
In meinem Beispiel der OrderType() = OP_BUYLIMIT, da ich den Grid-Bereich unterhalb der aktuellen Market-Order
prüfe.
Dazu anbei zwei unterschiedliche Vorgehensweisen.
Code:
// Beispiel der aufgeteilten Prüfung
double Grid_Lower_1_Buylimit_Price = 0;
for(int i = OrdersTotal()-1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
Grid_Lower_1_Buylimit_Price = OrderOpenPrice();
}
}
};
bool Grid_Lower_1_Buylimit_BOOL = false;
{
if(Grid_Lower_1_Buylimit_Price < GRID_LOWER_1_HIGH() && Grid_Lower_1_Buylimit_Price > GRID_LOWER_1_LOW())
{
Grid_Lower_1_Buylimit_BOOL = true;
}
}
Code:
// Beispiel der zusammenhängenden Prüfung
bool GRID_LOWER_1_BUYLIMIT()
{
bool Grid_Lower_1_Buylimit = false;
for(int i = OrdersTotal()-1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType() == OP_BUYLIMIT)
{
if(OrderOpenPrice() < GRID_LOWER_1_HIGH() && OrderOpenPrice() > GRID_LOWER_1_LOW())
{
Grid_Lower_1_Buylimit = true;
}
}
}
}
}
return (Grid_Lower_1_Buylimit);
}
Wie anfangs erwähnt, funktioniert die Abfrage bei der "aufgeteilten
Prüfung", aber nicht bei der "zusammenhängenden
Prüfung".