
za dlugo przed ea i juz nie mysle

dzieki za ten kod tylko tyle mi brakowalo
Kod: Zaznacz cały
extern double closeProfit=10;
int start()
{
//----
bool result, ord2close;
int i, cmd;
double price, profit = 0;
//----
for(i=0; i<OrdersTotal(); i++) {
OrderSelect(i, SELECT_BY_POS);
profit += OrderProfit();
}
if(profit >= closeProfit) {
for(i=0; i<OrdersTotal(); i++) {
OrderSelect(i, SELECT_BY_POS);
cmd = OrderType();
if(cmd < 2) {
i--;
result = false;
while(result != true) {
if(cmd == OP_BUY) price = MarketInfo(OrderSymbol(),MODE_BID);
else price = MarketInfo(OrderSymbol(),MODE_ASK);
result = OrderClose(OrderTicket(), OrderLots(), price, 3, CLR_NONE);
RefreshRates();
}
}
}
}
//----
return(0);
}
Po OrderClose wstaw sobie:STORNO pisze:Potrzebuję do tego EA sygnału dźwiękowego przy zamknięciu zleceń.
Kod: Zaznacz cały
Alert("Zlecenie zamknieto.");
Kod: Zaznacz cały
int TS_Distance = Ts_odl. ;
int TS_ActivatedLevel = Ts_poziom ;
if( (OrderType() == OP_BUY) && (Bid > (OrderOpenPrice() + TS_ActivatedLevel*Point)) && (OrderStopLoss() < (Bid - TS_Distance*Point))) {
if(!OrderModify(OrderTicket(), OrderOpenPrice(), (Bid - TS_Distance*Point), OrderTakeProfit(), OrderExpiration(), Yellow)) {
Print(ErrorDescription(GetLastError())); return(0);
}
}
if((OrderType() == OP_SELL) && (Ask < (OrderOpenPrice() - TS_ActivatedLevel*Point)) && (OrderStopLoss() > (Ask + TS_Distance*Point))) {
if(!OrderModify(OrderTicket(), OrderOpenPrice(), (Ask + TS_Distance*Point), OrderTakeProfit(), OrderExpiration(), Yellow)) {
Print(ErrorDescription(GetLastError())); return(0);
}
Kod: Zaznacz cały
extern double closeProfit=30;
int start()
{
//----
bool result, ord2close;
int i, cmd;
double price, profit = 0;
//----
for(i=0; i<OrdersTotal(); i++) {
OrderSelect(i, SELECT_BY_POS);
profit += OrderProfit();
}
if(profit >= closeProfit) {
for(i=0; i<OrdersTotal(); i++) {
OrderSelect(i, SELECT_BY_POS);
cmd = OrderType();
if(cmd < 2) {
i--;
result = false;
while(result != true) {
if(cmd == OP_BUY) price = MarketInfo(OrderSymbol(),MODE_BID);
else price = MarketInfo(OrderSymbol(),MODE_ASK);
result = OrderClose(OrderTicket(), OrderLots(), price, 3, CLR_NONE);
RefreshRates(); Alert("Zlecenie zamknieto.");
}
}
}
}
//----
return(0);
}
Po prostu Trailing Stop ustaw.STORNO pisze:Potrzebuję modyfikacji poniższego skryptu.
Chodzi mi o to żeby zamykał zlecenia każdej otwartej pary z określonym zyskiem (profit).
Kod: Zaznacz cały
//+------------------------------------------------------------------+
//| zamknij_gdy_profit_spada.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double max_obsuwa=30;
extern double zysk=0;
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if (zysk<AccountProfit())
zysk=AccountProfit();
Comment("Akceptowany poziom obsuwy=", max_obsuwa, "%", "\nMax zarejestrowany zysk=", zysk, "\nObsuwa od max=", DoubleToStr(100*(zysk-AccountProfit())/zysk, 0), "%");
if (zysk * (100-max_obsuwa)/100 > AccountProfit())
for (int i=OrdersTotal()-1; i>=0; i--)
{
Alert("Zlecenie nr= ", i, " z ", OrdersTotal());
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
{
Alert("Error in history!");
break;
}
Alert(Symbol(), " Ticket: ", OrderTicket());
switch(OrderType())
{
case OP_SELL:
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5);
Sleep(100);
Alert(OrderSymbol(), " Usuwam zlecenie nr: ", OrderTicket(), "wynik: ", GetLastError());
break;
case OP_BUY:
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5);
Sleep(100);
Alert(OrderSymbol(), " Usuwam zlecenie nr: ", OrderTicket(), "wynik: ", GetLastError());
break;
default:
OrderDelete(OrderTicket());
Sleep(100);
Alert(OrderSymbol(), " Usuwam zlecenie nr: ", OrderTicket(), "wynik: ", GetLastError());
break;
}
} //for
//----
return(0);
}
//+------------------------------------------------------------------+