Aktywne przyciski na wykresie - jak się je wykonuje ?

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1521
Rejestracja: 09 sie 2009, 21:27

Re: Aktywne przyciski na wykresie - jak się je wykonuje ?

Nieprzeczytany post autor: personov »

Myślę, że jest to ilos pipsów na + przy przestawianiu na BE.
Czyli jak dojdzie do działania BE to przestawi Ci SL np. na 3 pipsy na plus.
Solą życia jest kasa.

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: Aktywne przyciski na wykresie - jak się je wykonuje ?

Nieprzeczytany post autor: -rookie- »

Nie mogę sobie z tym poradzić...
Dlaczego funkcja OnChartEvent() nie reaguje i nie wyświetla komunikatu z Print? Odpalam to na testerze jako EA, na indykatorze zwraca wartość tzn reaguje na kliknięcie po wykresie myszką, a w EA nie. Tylko tyle kodu i chcialem zrobić kliknięcie na button żeby dodawało zlecenie BUY ale w ogóle nie reaguje, a w indykatorze OrderSend nie jest obsługiwane, więc tylko jako EA się da, ale nie wiem dlaczego to nie działa i jak zrobić żeby zaczęło działać.

Kod: Zaznacz cały

 Custom indicator 'test': OrderSend function cannot be called from a custom indicator
Chciałem sprawdzić na testerze historycznym EA działanie tego ale nie wywołuje tej funkcji OnChartEvent() , nie wiem czy da się tak zrobić. Na realnym rynku pewnie da się to odpalić jako script, wrzucić do folderu script i potem na wykres i pewnie zadziała, ale chciałem troche na testerze przetestować.

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//|                                                         test.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

string name = "test";

int OnInit()
  {
//---
   ObjectCreate(ChartID(), name, OBJ_BUTTON, 0, 0, 0);

   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
    //Print( Bid );
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) 
{
 
   Print( 1 );
   
   double minstoplevel = MarketInfo( Symbol(), MODE_STOPLEVEL );
 
   double stoploss = NormalizeDouble( Bid - minstoplevel * Point , Digits );
      
   if ( sparam == name ) {
      
      OrderSend( Symbol(), OP_BUY, 1, Ask, 3, stoploss, 0, "order", 16348, 0, clrNONE );
      
   }
   
}
-- Dodano: 23 wrz 2017, 17:33 --

https://images84.fotosik.pl/819/957d7bb3d538cf35.png
Tutaj jest obrazek, puściłem jako EA ten kod wyżej, i nie ma reakcji w konsoli mimo że klikam po wykresie i na guzik

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: Aktywne przyciski na wykresie - jak się je wykonuje ?

Nieprzeczytany post autor: -rookie- »

Widze że nikt nie kwapi się z pomocą... To tylko napisze, że problem został już rozwiązany. Myślałem że można to sprawdzić na testerze, ale okazuje się że nie, na realnym rynku wszystko działa jak trzeba, klikne guzik i składa zlecenie jako EA. Pytanie nieaktualne.

ODPOWIEDZ