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
profit podawany w procentach (mt4)
Re: profit podawany w procentach (mt4)
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.
Re: profit podawany w procentach (mt4)
wolalbym dedykowane rozwiązanie. pomozesz?
Re: profit podawany w procentach (mt4)
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
Re: profit podawany w procentach (mt4)
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ą.
Re: profit podawany w procentach (mt4)
Przykład takiego rozwiązania na EA:
Resztę pozostawiam autorowi.
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);
}
}
}
}
//+----------------------------------------------------------------------------------------------------+
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.