profit podawany w procentach (mt4)

O jezykach programowania w platformach i nie tylko.
trader009
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 13 wrz 2012, 17:07

profit podawany w procentach (mt4)

Nieprzeczytany post autor: trader009 »

witam,

jak w temacie. normalnie mt4 podaje profit w wartosciach bezwzglednych (w walucie kwotowanej). mnie interesuje profit wyrazany w procencie zmiany rachunku. prosze o poomoc jak to ustawic. zaplace i podziekuje:-)

pozdrawiam

Awatar użytkownika
Mustafa
Pasjonat
Pasjonat
Posty: 777
Rejestracja: 20 lip 2010, 10:54

Re: profit podawany w procentach (mt4)

Nieprzeczytany post autor: Mustafa »

Można coś napisać ale jeśli chodzi o statystyki to może załóż sobie konto np. tu https://www.myfxbook.com/
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.

trader009
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 13 wrz 2012, 17:07

Re: profit podawany w procentach (mt4)

Nieprzeczytany post autor: trader009 »

wolalbym dedykowane rozwiązanie. pomozesz?

mboryna
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 17 kwie 2015, 21:51

Re: profit podawany w procentach (mt4)

Nieprzeczytany post autor: mboryna »

za jaki okres ma byc wyrazony profit? ja w swoim EA pokazuje dzienny profit w wartosci kwotowanej, np. aktualny dzisiejszy profit wynosi + 26.50 PLN / 2 zlecenia

trader009
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 13 wrz 2012, 17:07

Re: profit podawany w procentach (mt4)

Nieprzeczytany post autor: trader009 »

mboryna, profit ma być wyrażony dla otwartych pozycji. na przykład gdy jest 5 pozycji otwartych, aplikacja powinna pokazywać zmianę procentową dla każdej pozycji + zmiane sumaryczną.

Awatar użytkownika
grey
Gaduła
Gaduła
Posty: 114
Rejestracja: 22 lut 2015, 14:18

Re: profit podawany w procentach (mt4)

Nieprzeczytany post autor: grey »

Przykład takiego rozwiązania na EA:

Kod: Zaznacz cały

//+----------------------------------------------------------------------------------------------------+
//|                                                                                        eaTest2.mq4 |
//|                                                                                               grey |
//|                                                                                 grey7727@gmail.com |
//+----------------------------------------------------------------------------------------------------+

#property copyright "grey"
#property link      "grey7727@gmail.com"
#property version   "1.00"
#property strict

//+----------------------------------------------------------------------------------------------------+

input color KOLOR = Red;

//+----------------------------------------------------------------------------------------------------+

int OnInit()
{
 return(INIT_SUCCEEDED);
}

//+----------------------------------------------------------------------------------------------------+

void OnDeinit(const int reason)
{
}

//+----------------------------------------------------------------------------------------------------+

void OnTick()
{
 if(OrdersTotal()>0) 
 {
  for(int i=OrdersTotal()-1; i>=0; i--)
  {
   // TABELKA
   ObjectDelete("TABELKA");
   
   double GORA   = WindowPriceMin() + 0.88 * ( WindowPriceMax() - WindowPriceMin() );
   double POZIOM = WindowPriceMin() + 0.83 * ( WindowPriceMax() - WindowPriceMin() );
   double DOL    = WindowPriceMin() + 0.6 * ( WindowPriceMax() - WindowPriceMin() );
   
   long ZOOM = ChartGetInteger(0,CHART_SCALE,0);
   
   int INT_LEWA, INT_PRAWA;
   int INT_SRODEK, INT_SRODEK2;
   
   switch((int)ZOOM)
   {
    case 0:  INT_LEWA = 0; INT_SRODEK = 133; INT_SRODEK2 = 266; INT_PRAWA = 400; break;
    case 1:  INT_LEWA = 0; INT_SRODEK = 67;  INT_SRODEK2 = 134; INT_PRAWA = 200; break;
    case 2:  INT_LEWA = 0; INT_SRODEK = 33;  INT_SRODEK2 = 66;  INT_PRAWA = 100; break;
    case 3:  INT_LEWA = 0; INT_SRODEK = 17;  INT_SRODEK2 = 34;  INT_PRAWA = 50;  break;
    case 4:  INT_LEWA = 0; INT_SRODEK = 8;   INT_SRODEK2 = 16;  INT_PRAWA = 25;  break;
    case 5:  INT_LEWA = 0; INT_SRODEK = 4;   INT_SRODEK2 = 8;   INT_PRAWA = 12;  break;
    default: INT_LEWA = 0; INT_SRODEK = 1;   INT_SRODEK2 = 2;   INT_PRAWA = 3;   break;
   }
   
   datetime LEWA = iTime(Symbol(),PERIOD_CURRENT,WindowFirstVisibleBar() - INT_LEWA);
   datetime PRAWA = iTime(Symbol(),PERIOD_CURRENT,WindowFirstVisibleBar() - INT_PRAWA);
   
   if(!ObjectCreate("TABELKA", OBJ_RECTANGLE, 0, LEWA, GORA, PRAWA, DOL)) {}
   if(!ObjectFind(0,"TABELKA"))
   {
    ObjectSetInteger(  0,  "TABELKA",  OBJPROP_COLOR,      KOLOR             );
    ObjectSetInteger(  0,  "TABELKA",  OBJPROP_STYLE,      STYLE_SOLID       );
    ObjectSetInteger(  0,  "TABELKA",  OBJPROP_WIDTH,      2                 );
    ObjectSetInteger(  0,  "TABELKA",  OBJPROP_BACK,       false             );
    ObjectSetInteger(  0,  "TABELKA",  OBJPROP_HIDDEN,     false             );
   }
   
   datetime SRODEK = iTime(Symbol(),PERIOD_CURRENT,WindowFirstVisibleBar() - INT_SRODEK);
   
   ObjectDelete("LINIA_PIONOWA");
   if(!ObjectCreate("LINIA_PIONOWA", OBJ_RECTANGLE, 0, SRODEK, GORA, SRODEK, DOL)) {}
   if(!ObjectFind(0,"LINIA_PIONOWA"))
   {
    ObjectSetInteger(  0,  "LINIA_PIONOWA",  OBJPROP_COLOR,      KOLOR             );
    ObjectSetInteger(  0,  "LINIA_PIONOWA",  OBJPROP_STYLE,      STYLE_SOLID       );
    ObjectSetInteger(  0,  "LINIA_PIONOWA",  OBJPROP_WIDTH,      2                 );
    ObjectSetInteger(  0,  "LINIA_PIONOWA",  OBJPROP_BACK,       false             );
    ObjectSetInteger(  0,  "LINIA_PIONOWA",  OBJPROP_HIDDEN,     false             );
   }
   
   datetime SRODEK2 = iTime(Symbol(),PERIOD_CURRENT,WindowFirstVisibleBar() - INT_SRODEK2);
   
   ObjectDelete("LINIA_PIONOWA2");
   if(!ObjectCreate("LINIA_PIONOWA2", OBJ_RECTANGLE, 0, SRODEK2, GORA, SRODEK2, DOL)) {}
   if(!ObjectFind(0,"LINIA_PIONOWA2"))
   {
    ObjectSetInteger(  0,  "LINIA_PIONOWA2",  OBJPROP_COLOR,      KOLOR             );
    ObjectSetInteger(  0,  "LINIA_PIONOWA2",  OBJPROP_STYLE,      STYLE_SOLID       );
    ObjectSetInteger(  0,  "LINIA_PIONOWA2",  OBJPROP_WIDTH,      2                 );
    ObjectSetInteger(  0,  "LINIA_PIONOWA2",  OBJPROP_BACK,       false             );
    ObjectSetInteger(  0,  "LINIA_PIONOWA2",  OBJPROP_HIDDEN,     false             );
   }
   
   ObjectDelete("LINIA_POZIOMA");
   if(!ObjectCreate("LINIA_POZIOMA", OBJ_RECTANGLE, 0, LEWA, POZIOM, PRAWA, POZIOM)) {}
   if(!ObjectFind(0,"LINIA_POZIOMA"))
   {
    ObjectSetInteger(  0,  "LINIA_POZIOMA",  OBJPROP_COLOR,      KOLOR             );
    ObjectSetInteger(  0,  "LINIA_POZIOMA",  OBJPROP_STYLE,      STYLE_SOLID       );
    ObjectSetInteger(  0,  "LINIA_POZIOMA",  OBJPROP_WIDTH,      2                 );
    ObjectSetInteger(  0,  "LINIA_POZIOMA",  OBJPROP_BACK,       false             );
    ObjectSetInteger(  0,  "LINIA_POZIOMA",  OBJPROP_HIDDEN,     false             );
   }
   
   datetime LABEL_NUMER_X = (datetime)(LEWA + (SRODEK - LEWA) * 0.5);
   double   LABEL_NUMER_Y = WindowPriceMin() + 0.87 * ( WindowPriceMax() - WindowPriceMin() );
   
   // LABEL_NUMER
   ObjectDelete("LABEL_NUMER");
   ObjectCreate(0,"LABEL_NUMER",OBJ_TEXT,0,LABEL_NUMER_X,LABEL_NUMER_Y);
   ObjectSetText("LABEL_NUMER", "NUMER", 10, "DejaVu Sans Mono",KOLOR);
   
   datetime LABEL_DATA_X = (datetime)(SRODEK + (SRODEK - LEWA) * 0.5);
   double   LABEL_DATA_Y = WindowPriceMin() + 0.87 * ( WindowPriceMax() - WindowPriceMin() );
   
   // LABEL_DATA
   ObjectDelete("LABEL_DATA");
   ObjectCreate(0,"LABEL_DATA",OBJ_TEXT,0,LABEL_DATA_X,LABEL_DATA_Y);
   ObjectSetText("LABEL_DATA", "DATA", 10, "DejaVu Sans Mono",KOLOR);
   
   datetime LABEL_PROFIT_X = (datetime)(SRODEK2 + (SRODEK - LEWA) * 0.5);
   double   LABEL_PROFIT_Y = WindowPriceMin() + 0.87 * ( WindowPriceMax() - WindowPriceMin() );
   
   // LABEL_DATA
   ObjectDelete("LABEL_PROFIT");
   ObjectCreate(0,"LABEL_PROFIT",OBJ_TEXT,0,LABEL_PROFIT_X,LABEL_PROFIT_Y);
   ObjectSetText("LABEL_PROFIT", "PROFIT", 10, "DejaVu Sans Mono",KOLOR);
  
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
   {
    double ORDER_PROFIT = NormalizeDouble( OrderProfit() * 100 / AccountBalance(), 2);
    
    datetime ORDER_NUMER_X = (datetime)(LEWA + (SRODEK - LEWA) * 0.5);
    double   ORDER_NUMER_Y = WindowPriceMin() + (0.81 - i*0.03) * ( WindowPriceMax() - WindowPriceMin() );
   
    // ORDER1_NUMER
    ObjectDelete("ORDER_NUMER"+string(i));
    ObjectCreate(0,"ORDER_NUMER"+string(i),OBJ_TEXT,0,ORDER_NUMER_X,ORDER_NUMER_Y);
    ObjectSetText("ORDER_NUMER"+string(i),  (string)(OrderTicket()), 10, "DejaVu Sans Mono",KOLOR);
    
    datetime ORDER_DATA_X = (datetime)(SRODEK + (SRODEK - LEWA) * 0.5);
    double   ORDER_DATA_Y = WindowPriceMin() + (0.81 - i*0.03) * ( WindowPriceMax() - WindowPriceMin() );
   
    // ORDER_DATA
    ObjectDelete("ORDER_DATA"+string(i));
    ObjectCreate(0,"ORDER_DATA"+string(i),OBJ_TEXT,0,ORDER_DATA_X,ORDER_DATA_Y);
    ObjectSetText("ORDER_DATA"+string(i), (string)(OrderOpenTime()), 7, "DejaVu Sans Mono",KOLOR);
    
    datetime ORDER_PROFIT_X = (datetime)(SRODEK2 + (SRODEK - LEWA) * 0.5);
    double   ORDER_PROFIT_Y = WindowPriceMin() + (0.81 - i*0.03) * ( WindowPriceMax() - WindowPriceMin() );
   
    // ORDER_DATA
    ObjectDelete("ORDER_PROFIT"+string(i));
    ObjectCreate(0,"ORDER_PROFIT"+string(i),OBJ_TEXT,0,ORDER_PROFIT_X,ORDER_PROFIT_Y);
    ObjectSetText("ORDER_PROFIT"+string(i), DoubleToString(ORDER_PROFIT, 2), 10, "DejaVu Sans Mono",KOLOR);
   
   }
  }
 }
}

//+----------------------------------------------------------------------------------------------------+
Resztę pozostawiam autorowi.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

ODPOWIEDZ