Как кодировать? - страница 27

 

Управление капиталом - Код фиксированного соотношения Райана Джонса

Текущий код фиксированного соотношения работает просто отлично, но я хотел бы объединить следующий код, в настоящее время он закодирован для добавления 20 лотов.

void FixedRatioMM()

{

if (MM == True)

{

if (AccountEquity() >= InitialCapital && AccountEquity() < (InitialCapital+(1*Delta))) {MMLots=1*Lots;}

if (AccountEquity() > (InitialCapital + (1*Delta)) && AccountEquity() < (InitialCapital+(3*Delta))) {MMLots=2*Lots;}

if (AccountEquity() > (InitialCapital + (3*Delta)) && AccountEquity() < (InitialCapital+(6*Delta))) {MMLots=3*Lots;}

if (AccountEquity() > (InitialCapital + (6*Delta)) && AccountEquity() < (InitialCapital+(10*Delta))) {MMLots=4*Lots;}

if (AccountEquity() > (InitialCapital + (10*Delta)) && AccountEquity() < (InitialCapital+(15*Delta))) {MMLots=5*Lots;}

if (AccountEquity() > (InitialCapital + (15*Delta)) && AccountEquity() < (InitialCapital+(21*Delta))) {MMLots=6*Lots;}

if (AccountEquity() > (InitialCapital + (21*Delta)) && AccountEquity() < (InitialCapital+(28*Delta))) {MMLots=7*Lots;}

if (AccountEquity() > (InitialCapital + (28*Delta)) && AccountEquity() < (InitialCapital+(36*Delta))) {MMLots=8*Lots;}

if (AccountEquity() > (InitialCapital + (36*Delta)) && AccountEquity() < (InitialCapital+(45*Delta))) {MMLots=9*Lots;}

if (AccountEquity() > (InitialCapital + (45*Delta)) && AccountEquity() < (InitialCapital+(55*Delta))) {MMLots=10*Lots;}

if (AccountEquity() > (InitialCapital + (55*Delta)) && AccountEquity() < (InitialCapital+(66*Delta))) {MMLots=11*Lots;}

if (AccountEquity() > (InitialCapital + (66*Delta)) && AccountEquity() < (InitialCapital+(78*Delta))) {MMLots=12*Lots;}

if (AccountEquity() > (InitialCapital + (78*Delta)) && AccountEquity() < (InitialCapital+(91*Delta))) {MMLots=13*Lots;}

if (AccountEquity() > (InitialCapital + (91*Delta)) && AccountEquity() < (InitialCapital+(105*Delta))) {MMLots=14*Lots;}

if (AccountEquity() > (InitialCapital + (105*Delta)) && AccountEquity() < (InitialCapital+(125*Delta))) {MMLots=15*Lots;}

if (AccountEquity() > (InitialCapital + (125*Delta)) && AccountEquity() < (InitialCapital+(141*Delta))) {MMLots=16*Lots;}

if (AccountEquity() > (InitialCapital + (141*Delta)) && AccountEquity() < (InitialCapital+(158*Delta))) {MMLots=17*Lots;}

if (AccountEquity() > (InitialCapital + (158*Delta)) && AccountEquity() < (InitialCapital+(176*Delta))) {MMLots=18*Lots;}

if (AccountEquity() > (InitialCapital + (176*Delta)) && AccountEquity() < (InitialCapital+(195*Delta))) {MMLots=19*Lots;}

if (AccountEquity() > (InitialCapital + (195*Delta)) && AccountEquity() < (InitialCapital+(215*Delta))) {MMLots=20*Lots;}

}

else MMLots = Lots;

}

TimeFreedom

 

Райан Джонс

Здравствуйте,

Я заплатил почти 2500 долларов за его советника, что отстой. Я бы лучше отдал эти деньги на достойную благотворительность. Когда я написал ему, он сказал, что это работает для него. полный B*** S***, если он продал, скажем, 100 советников, его движение, безусловно, в бычьем режиме.

blueocean

 

Не совсем то же самое

if (MM == True)

{

int i,n=0;

if (AccountEquity() >= InitialCapital)

{

for (i=1;i<=20;i++)

{

n += i;

if (AccountEquity() < (InitialCapital+(n*Delta)))

{

MMLots=i*Lots;

break;

}

}

}

}

else MMLots = Lots;

У вас есть ">=" только в первом случае, если

 

Что такое код для установки стопа в безубыток?

Кто-нибудь знает, как я могу добавить некоторый код в мою ea, чтобы стоп был установлен на безубыток или даже имел контекст при добавлении к любому количеству, которое я хочу?

extern double BreakEven = 0;

Это есть, но какой код я должен добавить?

 

ЕСТЬ ЛИ СПОСОБ ПОСТАВИТЬ БЕЗУБЫТОЧНЫЙ СТОП-ЛОСС!!!!!

 
ЕСТЬ ЛИ СПОСОБ ПОСТАВИТЬ БЕЗУБЫТОЧНЫЙ СТОП-ЛОСС!!!!!

Черт. Остынь. Вот код, который я использую для большинства своих советников, упрощенный для вашего запроса.

void breakEvenManager()

{

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (BreakEven>0 )

{

if (OrderType()==OP_BUY)

{

if (Bid-OrderOpenPrice()>=Point*BreakEven)

{

if (OrderStopLoss()<OrderOpenPrice() || OrderStopLoss()==0)

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() ,OrderTakeProfit(),0,Green);

}

}

else if (OrderType()==OP_SELL)

{

if (OrderOpenPrice()-Ask>=Point*BreakEven)

{

if (OrderStopLoss()>OrderOpenPrice() || OrderStopLoss()==0)

OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() ,OrderTakeProfit(),0,Red);

}

}

}

}

}
 

Спасибо, но это не подходит для extern breakeven.

Я написал, что функция "breakEvenManager" не является ссылочной и будет удалена.

 
kjhfdgjfhdghdf:
Спасибо, но это не вяжется с extern breakeven. Я вписал, что функция "breakEvenManager" не является ссылочной и будет удалена.

Вы должны вызвать модуль в какой-то точке вашего кода.

 

мне нужна помощь в простом коде

привет всем

Мне нужна помощь в простом коде, который разворачивает ордер, если он проиграл, и открывает тот же ордер, если он выиграл, а первый ордер открывается вручную, устанавливает любой тейкпрофит и стопэнд.

спасибо за помощь

 

мммммммммм