przeróbka EA lub inne

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
oswarek
Gaduła
Gaduła
Posty: 202
Rejestracja: 15 mar 2013, 11:09

przeróbka EA lub inne

Nieprzeczytany post autor: oswarek »

witam
mam EA (progresja20pips) które handluje w ten sposób:

ustawiamy TP, SL i początkowy Lot

robot po włączeniu ustawia pierwsze zlecenie BUY lub SELL (nie do konca wiem czym sie sugeruje)
po dotarciu do ustawionego TP zamienia z BUY na SELL lub z SELL na BUY (nie zmieniając lota)
po dotarciu do SL stawia nowe zlecenie jesli BUY to ponownie BUY, jesli SELL to ponownie SELL ale zwiększa lot dwukrotnie(lot*2).
Jesli lot był już zwiekszoy poprzez ileś tam SL=i to po dotarciu do TP lot wraca do początkowej wielkości

teraz moje pytanie: Czy ktoś umiałby przerobić to EA lub zna takie jakiego szukam a warunki sa takie:

po osiągnieiu SL pozycja zwiększa sie o ustawiony lot (chodzi o dodawanie a nie mnożenie)
po osiągnięciu TP pozycja zmniejsza się o ustaiwony lot (chodzi o odejmowanie)
dodatwkoo magicNumber wyciągniety do ustawień EA

kod EA:


#property copyright "Copyright © 2008,GIBON93 :P"
#property link "http://www.my-forex.ovh.org"


extern int sl = 20;
extern int tp = 20;
extern double start_lots = 0.01;
double Lots;
double OT;


double C;
double D;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

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

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
OT = OrdersTotal();

int total = OrdersHistoryTotal();


for(int i=0; i<total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
double profit = OrderProfit();

}
if (OT<=0&&profit>=0) Lots=start_lots;
if (OT<=0&&profit<0) Lots=Lots*2;
if (Lots>MarketInfo(Symbol(),MODE_MAXLOT)) Lots=MarketInfo(Symbol(),MODE_MAXLOT);
if (OT<=0) C=0;
if (OT<=0&&profit<0&&D==0) D=0;
if (OT<=0&&profit<0&&D==1) D=1;
if (OT<=0&&profit>=0&&D==0){ D=1;C=1;}
if (OT<=0&&profit>=0&&D==1&&C!=1) D=0;




if ( OT<=0 &&D==0){
OrderSend(Symbol(), OP_BUY, Lots, MarketInfo(Symbol(),MODE_ASK), 1,MarketInfo(Symbol(),MODE_ASK)-(sl*MarketInfo(Symbol(),MODE_POINT)),MarketInfo(Symbol(),MODE_ASK)+(tp*MarketInfo(Symbol(),MODE_POINT)), "Buy2(#" + 123 + ")", 123, 0, DodgerBlue);D=0;}


if ( OT<=0 &&D==1){
OrderSend(Symbol(), OP_SELL, Lots, MarketInfo(Symbol(),MODE_BID), 1,MarketInfo(Symbol(),MODE_BID)+(sl*MarketInfo(Symbol(),MODE_POINT)),MarketInfo(Symbol(),MODE_BID)-(tp*MarketInfo(Symbol(),MODE_POINT)), "Buy2(#" + 123 + ")", 123, 0, DodgerBlue);D=1;}



//----
return(0);
}
//+------------------------------------------------------------------+
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

ODPOWIEDZ