Trigger im Chart
Hallo ich bin dabei mir ein kleinen Teil für mein neues Projekt zu schreiben.
Es handelt sich um ein ExpertAdvisor mit einer "Triggerlinie" im Chart was abhängig von gesetzten StopLoss einer Order ist. den Teil was nach erreichen der Linie passiert werde ich dann später fertig schreiben.
Nun sehe ich den Wald vor lauter Bäumen nicht, der Fehler den ich nicht finde
drückt sich im Tester mit absolut keiner Regung aus, was das anlegen der von den einzeichnen der Linie angeht . Da brauche ich eure Hilfe
Code:
// Codeschnipsel Trigger
#include <Trade\Trade.mqh>
CTrade trade;
double TriggerLine1=0;
input int SL=200;
input int TP=400;
input int Trigger=100;
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//Ask&Bid-Preis ermitteln
double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID), _Digits);
double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK), _Digits);
//Werte für TP&SL BuyOrder
if(PositionsTotal()==0)
{
//Kaufen-Order oeffnen
trade.Buy(0.01,NULL,Ask,Ask-SL* _Point,Ask+TP* _Point);
}
//Daten Ermitteln für Order
for(int i=PositionsTotal()-1; i>=0; i--)
{
//Ermitteln von Ticketnummer
ulong PositionTicket= PositionGetInteger(POSITION_TICKET);
//Ermitteln von Kaufpreis
double PositionBuyPrice= PositionGetDouble(POSITION_PRICE_OPEN);
//Ermitteln von StopLoss
double PositionStopLoss= PositionGetDouble(POSITION_SL);
//Ermitteln von TakeProfit
double PositionTakeProfit= PositionGetDouble(POSITION_TP);
//Ermitteln vo Typ der Position
double PositionTyp= PositionGetInteger(POSITION_TYPE);
//Ermitteln von Symbol
string symbol=PositionGetSymbol(i);
//Wenn Symbol passt
if(_Symbol==symbol)
//Wenn Kaufen ist
if(PositionTyp==POSITION_TYPE)
//Wenn StopLoss unter Kaufpreis liegt
if(PositionStopLoss<PositionBuyPrice)
//Wenn der Askpreisueber xPunkte ueber Kaufpreis liegt
if(Ask > (PositionBuyPrice+Trigger*_Point))
{
//Setze Trigger
TriggerLine1=PositionBuyPrice+Trigger*_Point;
//Untere Linie:
//Objekeigenschaften für Linie einstellen
ObjectCreate(_Symbol,"Line2",OBJ_HLINE,0,0,TriggerLine1);
//Linienfarbe einstellen
ObjectSetInteger(0,"Line2",OBJPROP_COLOR,clrViolet);
//Linienbreite
ObjectSetInteger(0,"Line2",OBJPROP_WIDTH,1);
//Linie bewegen
ObjectMove(_Symbol,"Line2",0,0,TriggerLine1);
}
}
}
//+------------------------------------------------------------------+
|