01.10.19
|
Mitglied
|
|
Registriert seit: Sep 2018
Beiträge: 42
|
|
Zitat:
Zitat von Bobs
Warum nicht? Es ist möglich ein Stand des Buttons im Strategietester definieren. Das wird aber ein anderen Algorithmus, ohne OnChartEvent(). Bei diesem wird Button bei nachfolgenden Tick reagieren.
|
Das war auch neu für mich. Vielen Dank für den Hinweis
Code:
string BUTTON_NAME = "Button";
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ObjectCreate(0,BUTTON_NAME,OBJ_BUTTON,0,0,0);
ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XSIZE,200);
ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YSIZE,100);
ObjectSetInteger(0,BUTTON_NAME,OBJPROP_BGCOLOR,clrFuchsia);
ObjectSetInteger(0,BUTTON_NAME,OBJPROP_COLOR,clrWhite);
ObjectSetInteger(0,BUTTON_NAME,OBJPROP_XDISTANCE,100);
ObjectSetInteger(0,BUTTON_NAME,OBJPROP_YDISTANCE,100);
ObjectSetString(0,BUTTON_NAME,OBJPROP_TEXT,"BUY");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectDelete(BUTTON_NAME);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// Only needed in Visual Testing Mode
if( IsVisualMode() )
{
// Check Chart Buttons in Visual Mode
CheckResetButton();
}
return;
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(sparam==BUTTON_NAME)
{
Comment("AAAAAA");
//OrderSend(_Symbol,OP_BUY,1,Ask,0,0,0);
//oder halt eine andere Variable ändern die dann im EA eine Aktion ausführt !
ObjectSetInteger(0,BUTTON_NAME,OBJPROP_STATE,false); //setzt den Button zurück
}
}
//+------------------------------------------------------------------+
void CheckResetButton()
{
if (bool (ObjectGetInteger (0, BUTTON_NAME, OBJPROP_STATE)))
{
Comment ("AAAAAA");
ObjectSetInteger (0, BUTTON_NAME, OBJPROP_STATE, false);
}
}
|