Kodlama yardımı - sayfa 290

 
mladen:
Basit :

EA'nızın start() prosedürünün başına böyle bir şey koyun ve o gün halihazırda yapılmış olan kayıp (veya kâr) bir miktar miktarı aşıyorsa, çalışmasını engelleyecektir:

double totalProfit=0;

for (int i =OrdersHistoryTotal()-1; i>=0; i--)

{

if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;

if (OrderSymbol() != Symbol()) continue;

if (OrderMagicNumber() != someMagicNumber) continue;

if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)

if (OrderType()==OP_BUY || OrderType()==OP_SELL)

totalProfit += OrderProfit()+OrderCommission()+OrderSwap();

}

if (totalProfit < someProfitLossLimit) return(0);

[/PHP]

Sayın MLADEN....

Yukarıdaki kodlar için ÇOK TEŞEKKÜRLER.... IOU 2 kredi.....

[PHP]

çift toplamKar=0;

for (int i =OrdersHistoryTotal()-1; i>=0; i--)

{

(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) devam ederse;

(OrderSymbol() == Symbol()) devam ederse;

(OrderMagicNumber() == bazıMagicNumber) devam ederse;

if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)

if (OrderType()==OP_BUY || OrderType()==OP_SELL)

totalProfit += OrderProfit()+OrderCommission()+OrderSwap();

}

if (toplamKar < bir miktarKarKayıpLimit) return(0);

Sadece kontrol etmek için..... bu kod, belirli bir döviz çiftinden ve MagicNumber'dan daha fazla siparişi önleyecek mi....

çok hızlı cevap için teşekkürler....

saygılarımla

AZRUL...

 
12BPRO:
Sayın MLADEN....

Yukarıdaki kodlar için ÇOK TEŞEKKÜRLER.... IOU 2 kredi.....

double totalProfit=0;

for (int i =OrdersHistoryTotal()-1; i>=0; i--)

{

if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;

if (OrderSymbol() == Symbol()) continue;

if (OrderMagicNumber() == someMagicNumber) continue;

if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)

if (OrderType()==OP_BUY || OrderType()==OP_SELL)

totalProfit += OrderProfit()+OrderCommission()+OrderSwap();

}

if (totalProfit < someProfitLossLimit) return(0);

[/PHP]

Just to check..... will this code prevent any more orders from a specific currency pair and MagicNumber.... if today's ACCUMULATED LOSS exceed someProfitLossLimit....

Thanks for the very-very fast reply....

best regrads

AZRUL...

Evet

Kapanan siparişlerin birikmiş karı bir miktardan azsa, daha fazla kod işlemeyi önleyecektir. Son satırı bununla değiştirebilirsiniz:

[PHP]if (toplamKar < 0 && toplamKar < bazıKarKayıpSınır) return(0);

Sadece kümülatif "karın" negatif olduğu durumlarda (zararlar olduğunda) yapıldığından emin olmak için

 
mladen:
Evet

Kapanan siparişlerin birikmiş karı bir miktardan azsa, daha fazla kod işlemeyi önleyecektir. Son satırı bununla değiştirebilirsiniz:

if (totalProfit < 0 && totalProfit < someProfitLossLimit) return(0);
Sadece kümülatif "karın" negatif olduğu durumlarda (zararlar olduğunda) yapıldığından emin olmak için

Sayın MLADEN...

O halde kusura bakmayın efendim... Sanırım sizin için yeterince açıklayamadım.....

Amacım, yalnızca belirli bir döviz çifti ve MagicNumber için TOPLANAN ZARAR üzerindeki sekmeleri tutmak için bir kod... Kazandığı kâr dahil değil... SADECE KAYIP sayılır...

KARIŞIKLIK İÇİN ÖZÜR DİLERİM..

Saygılarımla..

AZRUL...

 
12BPRO:
Sayın MLADEN...

O halde kusura bakmayın efendim... Sanırım sizin için yeterince açıklayamadım.....

Amacım, yalnızca belirli bir döviz çifti ve MagicNumber için TOPLANAN ZARAR üzerindeki sekmeleri tutmak için bir kod... Kazandığı kâr dahil değil... SADECE KAYIP sayılır...

KARIŞIKLIK İÇİN ÖZÜR DİLERİM..

Saygılarımla..

AZRUL...

AZRUL

Kâr negatif olabilir (==zarar) Kapalı diğer tüccarlar listesinde, "kârı" koruyan Order() kârı adında bir dosya vardır: kazanan emirler için pozitif ve alım satımlar için negatif. Bu kod barışı tam olarak ihtiyacınız olanı yapar

 

Sayın MLADEN,

Teori şudur.... eğer bugün bir SIDEWAY piyasası olursa, elde edilen kârın (varsa) bir kısmını ve sermayemdeki X$ RİSK'i kaybederim.... Bu bir koruma değil çok KÖTÜ bir ticaret gününe karşı .....

Bunun nedeni, bugünün ticaretinden günlük X$'dan RİSK almaya istekli olmamdır....

Yukarıdaki kodlar o gün için (varsa) tüm kârımı ve ayrıca RİSK'imi (sermaye) tüketecek...

TEŞEKKÜRLER

Saygılarımla...

AZRUL...

 
mladen:
AZRUL Kar negatif olabilir (==zarar) Kapalı diğer tüccarlar listesinde, "kârı" koruyan Order() kârı adında bir dosya vardır: kazanan emirler için pozitif ve alım satımlar için negatif. Bu kod barışı tam olarak ihtiyacınız olanı yapar

Sayın MLADEN...

Yukarıdaki öneri konusunda beni aydınlattığın için teşekkürler...

Deneyeceğim ve herhangi bir sonuç arayacağım....

saygılarımla

AZRUL...

 

Sayın MLADEN,

Aşağıdaki kodlar hile yapacak mı ...

Yalnızca belirli bir döviz çifti ve MagicNumber için TOPLANAN ZARAR üzerinde sekmeler tutmak.... Kazandığı kâr dahil değil... SADECE KAYIP sayılır...

extern double LossAmount = -500.00

...............

int start()

if(LossRisk()<=LossAmount)

return(0);

...............

void LossRisk()

double totalLoss=0;

{

for (int i =OrdersHistoryTotal()-1; i>=0; i--)

{

if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;

if (OrderSymbol() == Symbol()) continue;

if (OrderMagicNumber() == someMagicNumber) continue;

if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)

if (OrderType()==OP_BUY || OrderType()==OP_SELL)

totalLoss -= OrderProfit()+OrderCommission()+OrderSwap();

}

return(totalLoss);

}

Bilgileriniz çok değerli...

saygılarımla

AZRUL...

 
12BPRO:
Sayın MLADEN,

Aşağıdaki kodlar hile yapacak mı ...

Yalnızca belirli bir döviz çifti ve MagicNumber için TOPLANAN ZARAR üzerinde sekmeler tutmak.... Kazandığı kâr dahil değil... SADECE KAYIP sayılır...

extern double LossAmount = -500.00

...............

int start()

if(LossRisk()<=LossAmount)

return(0);

...............

void LossRisk()

double totalLoss=0;

{

for (int i =OrdersHistoryTotal()-1; i>=0; i--)

{

if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;

if (OrderSymbol() == Symbol()) continue;

if (OrderMagicNumber() == someMagicNumber) continue;

if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)

if (OrderType()==OP_BUY || OrderType()==OP_SELL)

totalLoss -= OrderProfit()+OrderCommission()+OrderSwap();

}

return(totalLoss);

}

[/PHP]

Your Knowledge is highly appreciated...

yours truly

AZRUL....

hayır olmayacak

Toplamak istiyorsanız, sadece kaybedersiniz, eklemeniz gerekir.

&& (OrderProfit ()+ OrderCommission ()+ OrderSwap ()<0 )

Böylece fonksiyon şöyle görünecek:

[PHP]void LossRisk()

çift toplamKayıp=0;

{

for (int i =OrdersHistoryTotal()-1; i>=0; i--)

{

(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) devam ederse;

(OrderSymbol() == Symbol()) devam ederse;

(OrderMagicNumber() == bazıMagicNumber) devam ederse;

if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)

if (OrderType()==OP_BUY || OrderType()==OP_SELL && (OrderProfit()+OrderCommission()+OrderSwap())<0)

totalLoss += OrderProfit()+OrderCommission()+OrderSwap();

}

dönüş(toplamKayıp);

}

 

Sayın MLADEN....

Şu anda bu kodları bir M15 zaman diliminde çalışan EA'mda kullanıyorum ...

M15 zaman diliminden sonra yeni bir sipariş açacak...

bool AddP()

{int _num=0; int _ot=0;

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

{if(OrderSelect(j,SELECT_BY_POS)==true && OrderSymbol()==Symbol() && OrderType()<3 && ((OrderMagicNumber()==Magic) || Magic==0))

{

_num++;if(OrderOpenTime()>_ot) _ot=OrderOpenTime();

}

}

if(_num==0) return(true);

if(_num>0 && ((Time[0]-_ot))>0)

return(true);

else return(false);

}

Önceki siparişten sonraki her 5 dakikada bir sipariş vermek için bu kodu değiştirebilir misiniz?

M15 zaman diliminde olmama rağmen ....

BU KADAR ÇOK SORU GÖNDEREREK GÜÇLENMEYECEĞİNİZİ umarsınız....

saygılarımla

AZRUL...

 
mladen:
hayır olmayacak

Toplamak istiyorsanız, sadece kaybedersiniz, eklemeniz gerekir.

&& (OrderProfit ()+ OrderCommission ()+ OrderSwap ()<0 )

Böylece fonksiyon şöyle görünecek:

void LossRisk()

double totalLoss=0;

{

for (int i =OrdersHistoryTotal()-1; i>=0; i--)

{

if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;

if (OrderSymbol() == Symbol()) continue;

if (OrderMagicNumber() == someMagicNumber) continue;

if (iBarShift(Symbol(),PERIOD_D1,OrderCloseTime())==0)

if (OrderType()==OP_BUY || OrderType()==OP_SELL && (OrderProfit()+OrderCommission()+OrderSwap())<0)

totalLoss += OrderProfit()+OrderCommission()+OrderSwap();

}

return(totalLoss);

}

Sayın MLADEN,

Burada işleri halletmenin yollarını biliyorsun...

Sizden cevap aldığıma ÇOK ÇOK MUTLUYUM efendim....

Karşılığında yapabileceğim bir şey varsa pm at... kodlamalar dışında...

teşekkürler

Saygılarımla

AZRUL...

Neden: