czy mozna polaczy rozne ea ?

O jezykach programowania w platformach i nie tylko.
kojot
Bywalec
Bywalec
Posty: 20
Rejestracja: 30 maja 2005, 17:02

czy mozna polaczy rozne ea ?

Nieprzeczytany post autor: kojot »

Witam

mam dwa posciutkie ea, jedno ustawia stop loss itd a drugie robi zrzut danych do pliku, czy mozna napisac takie ea naglowkowe zeby z niego wywolywac dwa pozostale

pozdrawiam

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

Nie, ale możesz mieć 2 zapuszczone na osobnych wykresach i o ile masz taki sam magic to powinny współpracować
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

kojot
Bywalec
Bywalec
Posty: 20
Rejestracja: 30 maja 2005, 17:02

Nieprzeczytany post autor: kojot »

dzieki

Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

Przepraszam, że się wtrącę ale mam EA, w którym można ustawić kierunek składania zleceń np tylko na BUY lub tylko na SELL. Chciałbym zmieniać ten kierunek w zależności od koloru (indyka) MA Colored ale nie wiem jak w prosty sposób to połączyć. Jest jakaś prosta metoda bez gruntownej przebudowy EA?
Obrazek

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

sonixh pisze:Chciałbym zmieniać ten kierunek w zależności od koloru (indyka) MA Colored ale nie wiem jak w prosty sposób to połączyć. Jest jakaś prosta metoda bez gruntownej przebudowy EA?
1. Musisz mieć kod EA.
2. Musisz dodać do warunków otwarcia sprawdzanie jaki jest MA obecnie i na poprzedniej świecy (na tej podstawie MA otrzymuje odpowiedni kolor).

Czy to prosto czy nie to już każdy sobie indywidualnie odpowie.
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

Hmm, mam kod EA. Tam jest coś takiego:

extern int
MagicNumber = 666,
Slippage = 3;
extern bool
Use_MA_Logic = true;
extern int
MA1_Slow = 55,
MA2_Fast = 8,
TrailingStop = 5;
extern bool
Use_RSI_Filter = false;
extern int
RSI_Period = 7,
RSI_High = 70,
RSI_Low = 30;
extern bool
Open_Buy = true,
Open_Sell = true,
TradeAgainAfterProfit = true;
extern int
LevelDistance = 1,
StopLoss = 65;
extern double
MoneyTakeProfit = 10000;
extern double
Lots_Level_1 = 0.1,
Lots_Level_2 = 0.1,
Lots_Level_3 = 0.2,
Lots_Level_4 = 0.3,
Lots_Level_5 = 0.5,
Lots_Level_6 = 0.8,
Lots_Level_7 = 1.3,
Lots_Level_8 = 2.1,
Lots_Level_9 = 3.4,
Lots_Level_10 = 5.5,
Lots_Level_11 = 8.9,
Lots_Level_12 = 14.4,
Lots_Level_13 = 23.3,
Lots_Level_14 = 37.7;

bool Trade=True;
datetime FirstTime,TT;
double BestBuySL, BestSellSL;
int ticket1,ticket2,ticket3,ticket4,ticket5,ticket6,ticket7,ticket8,ticket9,ticket10,ticket11,ticket12,ticket13,ticket14;

int MyDigits;
double MyPoint;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
if(Digits==5)MyDigits=4;
else if(Digits==3)MyDigits=2;
else MyDigits = Digits;
if (Point == 0.00001) MyPoint = 0.0001; //6 digits
else if (Point == 0.001) MyPoint = 0.01; //3 digits (for Yen based pairs)
else MyPoint = Point; //Normal
FirstTime = 0;
Print("Adjusted for 4/5 digit pip differences");

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(TradeAgainAfterProfit)Trade=true;
ticket1 = 0;
ticket2 = 0;
ticket3 = 0;
ticket4 = 0;
ticket5 = 0;
ticket6 = 0;
ticket7 = 0;
ticket8 = 0;
ticket9 = 0;
ticket10 = 0;
ticket11 = 0;
ticket12 = 0;
ticket13 = 0;
ticket14 = 0;
if(Use_MA_Logic)
{
Open_Buy = true;
Open_Sell = true;

double MA_Slow = iMA(Symbol(),0,MA1_Slow,0,0,0,1);
double MA_Fast = iMA(Symbol(),0,MA2_Fast,0,0,0,1);
double MA_Slow_L = iMA(Symbol(),0,MA1_Slow,0,0,0,2);
double MA_Fast_L = iMA(Symbol(),0,MA2_Fast,0,0,0,2);

// ------
if(MA_Slow-MA_Fast>0&&MA_Slow_L<MA_Fast_L&&TT!=iTime(Symbol(),0,0))
{
Open_Buy = false;
Open_Sell = true;
}
// -----------
if(MA_Slow-MA_Fast<-0&&MA_Slow_L>MA_Fast_L&&TT!=iTime(Symbol(),0,0))
{
Open_Buy = true;
Open_Sell = false;
}


W chwili gdy zaczynam kombinować z wprowadzeniem nowych rzeczy kompilator chce mnie zabić. Ja poprostu potrzebuję pomocy. Muszę to koniecznie zrozumieć bo EA robi zbyt duże straty w chwili zmiany trendu. A jak już zrobi dobra transakcję to powinien kontynuować robotę. A nie chce...
Możesz mi pomóc?

Dodano po 2 godzinach 9 minutach:

Ze wskazaniem trendu już jest łatwiej bo ktoś to wcześniej przerobił:

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_width1 1
#property indicator_color2 Green
#property indicator_width2 1
#property indicator_color3 Red
#property indicator_width3 1

extern int xPeriod=12;
extern double xSlope = 4.0;

double HMA[],up[],dn[],kierunek; //dodalem zmienna kierunek

int init() {

SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,HMA);
SetIndexLabel(0,"HMA " + xPeriod + " , " + xSlope) ;

SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,up);

SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,dn);

SetIndexBuffer(3,kierunek); // ten bufor jest dopisany przeze mnie, abym mogl pobierac z niego wartosci o kier. trendu- hma=0, up=1, down=2,


return(0);

}

int deinit() {return(0); }

int start() {

double sqrt = MathRound ( MathSqrt( xPeriod ) );

for(int i=Bars;i>=0;i--) {
double sum = 0;
int wma_sum = 0;
for(int j=0; j < sqrt; j++) {
double val = 2*iMA(NULL, 0, MathRound(xPeriod/2), 0, MODE_LWMA, PRICE_MEDIAN, i+j)- iMA(NULL, 0, xPeriod, 0, MODE_LWMA, PRICE_MEDIAN, i+j);
sum = sum + val*(sqrt-j);
wma_sum = wma_sum + (sqrt-j);
}
HMA = sum/wma_sum;

if(HMA>HMA[i+1]+xSlope*Point) {up=HMA;kierunek=1;} //przypisalem do zm. kierunek wart 1 czyli ze jest trend wzrostowy
if(HMA<HMA[i+1]-xSlope*Point) {dn=HMA;kierunek=2;} //przypisalem do zm. kierunek wart 2 czyli ze jest trend spadkowy
// niestety nie wiem gdzie przypisac wartosc kierunek=0 dla slabego trendu (żółty kolor na wskazniku)
// Po tych modyfikacjach bufor3 ze zmmienna kierunek i tak nie zwraca prawidlowych wartości (0,1,2) tylko jakąś 10 cyfrową liczbę :-/
}


return(0);

}
Obrazek

ODPOWIEDZ