Nasıl kodlanır? - sayfa 109

 

Çoklu İşlemleri Yönetin

Hey millet,

Teorik olarak sonsuz miktarda ticarete girebilen ve her ticaret için şunları yönetebilen bir EA geliştirmeye çalışıyorum:

  1. İzleyen Durdurma
  2. BE'ye taşı
  3. ATR-Sondaki Durdurma
  4. vb

İsviçre ordusu ve ManageTP gibi EA'ların bunu yapabileceğini biliyorum. Nasıl olduğunu bilmiyorum.

Baska öneri?

 

bir kayıptan sonra ticareti durdurmak için kod yazma konusunda yardıma ihtiyacınız var

Merhaba,

Bir uzmanın bir kayıptan sonra veya iki veya üç ardışık kayıptan sonra belirli bir saat boyunca ticareti durdurması için kod yazmam gerekiyor.

Birisi bana yardım edebilir mi?

 

Riskten korunma kapalıyken Martinggle için kodlama

Merhaba takım,

aşağıdaki durumlarıma çözüm getirebilecek bir kod aramak istiyorum;

örnekler;

martingle konsepti-

TP = 23 pip

Pip boşlukları = 20

OP, EU 0.1,0.2,0.4,0.8,1.6 lot satın al

1. lot 1,6'daki katman -20pips'den fazla yüzüyorsa, OP 12.8lot ile AB'yi Sat (tp 23).

2. katman 12.8 lot TP vurursa tüm AB pozisyonunu kapatın.

3. eğer 12.8 lot pip=0 ise, sadece AB'yi Sat'taki pozisyonu kapatın.

4. Koşul geçerliyse, 1'den 3'e kadar durumu tekrarlayın.

İşlev ve kodlar hakkında bana tavsiyede bulunmak için iyiliğinize ihtiyacım var.

 

kodlama sorusu

Şu anda bu kod, mevcut açıklığın önceki çubuktan daha yüksek olup olmadığını kontrol ederek çalışır. Sorum şu ki, önceki çubuğa EŞİT YA DA daha yüksek olup olmadığını görmek istersem onu nasıl değiştirirdim?

if(Open[0] > Open[0+1] &&

[0+1] Aç > [0+2] && Aç

Aç[0+2]>[0+3] Aç &&

[0+3] Aç > [0+4] Aç &&

[0+4] Aç > [0+5] Aç &&

Aç[0+5] > Aç[0+6]) Sipariş = SIGNAL_SELL

Bu = > gibi, büyüktür işaretinin yanına bir = ekler miyim?

Teşekkürler!

 

bunu dene:

if(Open[0] => Open[0+1] &&

Open[0+1] => Open[0+2] &&

Open[0+2]=> Open[0+3] &&

Open[0+3] => Open[0+4] &&

Open[0+4] => Open[0+5] &&

Open[0+5] => Open[0+6]) Order = SIGNAL_SELL

 

tersine uzman danışman sinyalleri

merhaba

sadece bu uzman danışmanla oynamak

#property copyright "FORTRADER.RU"

#property link "http://FORTRADER.RU"

/*

????????? ???????? ?????????? ????????? ???????? ? ?????? ??????? ?? 26 ??? 2008,

??????????? ? ?????? ?? ????? ???? ?????? ? ????? ????????????: letters@fortrader.ru

http://www.fortrader.ru/arhiv.php

A detailed description of the parameters adviser available issue of the journal dated May 26 2008,

suggestions and feedback we will be glad to see in our e-mail: letters@fortrader.ru

http://www.fortrader.ru/arhiv.php

*/

extern string x="????????? MACD:";

extern int FastEMA = 12;

extern int SlowEMA = 24;

int SignalEMA = 9;

extern int predel = 6;

extern string x1="????????? MA:";

extern int SMA1 = 50;

extern int SMA2 = 100;

extern int otstup = 10;

extern string x2="???????? ????? ??? ??????? ????-???? :";

extern int stoplossbars = 6;

extern string x3="??????????? ??? ??????? ?????? ?????? ? ???????? ???????? ???????:";

extern int pprofitum = 2;

extern string x4="?????? ?? ADX:";

extern int enable = 0;

extern int periodADX = 14;

extern double Lots=1;

datetime Bar;int buy,sell,i,a,b;double stoploss,setup2,adx,okbuy,oksell;

int start()

{

buy=0;sell=0;

for( i=0;i<OrdersTotal();i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY){buy=1;}

if(OrderType()==OP_SELL){sell=1;}

}

//????????? ??????????

double macd =iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);

double sma1 =iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,1);

double sma2 =iMA(NULL,0,SMA2,0,MODE_SMA,PRICE_CLOSE,1);

if(Close[1]<sma2){okbuy=1;}

if(Close[1]>sma2){oksell=1;}

if(enable==1)

{

adx=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);

}else{adx=60;}

if(Close[1]+otstup*Point>sma1 && Close[1]+otstup*Point>sma2 && macd>0 && buy==0)

{

buy=0;

for( i=predel;i>0;i--)

{

macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);

if(macd<0){buy=2;}

}

if(buy==2 && adx>50 && okbuy==1)

{okbuy=0;

double stoploss=Low;

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,stoploss,0,0,16385,0,Green);

a=0;

}

}

if(Close[1]-otstup*Point<sma1 && Close[1]-otstup*Point<sma2 && macd<0 && sell==0)

{

sell=0;

for( i=predel;i>0;i--)

{

macd=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,i);

if(macd>0){sell=2;}

}

if(sell==2 && adx>50 && oksell==1)

{oksell=0;

stoploss=High;

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,stoploss,0,0,16385,0,White);

b=0;

}

}

if(buy==2 || buy==1)

{

for( i=0;i<OrdersTotal();i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY )

{

double setup2=OrderOpenPrice()+((OrderOpenPrice()-OrderStopLoss())*pprofitum);

if(Close[1]>setup2 && a==0)

{

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

OrderClose(OrderTicket(),OrderLots()/2,Bid,3,Violet);

a=1;

}

if(a==1 && sma1> Close[1]-otstup*Point)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);

}

}

}

}

if(sell==2 || sell==1)

{

for( i=0;i<OrdersTotal();i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL )

{

setup2=OrderOpenPrice()-((OrderStopLoss()-OrderOpenPrice())*pprofitum);

if(Close[1]<setup2 && b==0)

{

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

OrderClose(OrderTicket(),OrderLots()/2,Ask,3,Violet);

b=1;

}

if(b==1 && Close[1]-otstup*Point> sma1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);

}

}

}

}

return(0);

}

alış ve satış emirlerini nasıl tersine çevirebilirim ... çalıştıramıyorum

 

Sadece ters çevirmek için OP_BUY'u OP_SELL ile değiştirin ve doğru kod çizgisindeki ters eylem.

 
oneg:
bunu dene:

if(Open[0] => Open[0+1] &&

Open[0+1] => Open[0+2] &&

Open[0+2]=> Open[0+3] &&

Open[0+3] => Open[0+4] &&

Open[0+4] => Open[0+5] &&

Open[0+5] => Open[0+6]) Order = SIGNAL_SELL

Bu işe yaramadı, ancak = işaretini > işaretinden sonra koymak işe yaradı. Bunun gibi:

if(Open[0] >= Open[0+1] &&

Aç[0+1] >= Aç[0+2] &&

Aç[0+2]>= Aç[0+3] &&

Aç[0+3] >= Aç[0+4] &&

Aç[0+4] >= Aç[0+5] &&

Aç[0+5] >= Aç[0+6]) Sipariş = SIGNAL_SELL

 

Bu kodda, 45 pip için ayarlanmış sondaki durdurmaya sahiptir. Ancak takip eden durak, 45 pip hareket edene kadar Etkinleştir görünmüyor. Takas yapıldığında takip eden durdurmanın etkinleştirilmesi için bunu nasıl değiştirmem gerekir?

extern string Remark1 = "== Main Settings ==";

extern int MagicNumber = 0;

extern bool SignalMail = False;

extern bool EachTickMode = true;

extern double Lots = 4;

extern int Slippage = 2;

extern bool UseStopLoss = false;

extern int StopLoss = 100;

extern bool UseTakeProfit = false;

extern int TakeProfit = 15;

extern bool UseTrailingStop = true;

extern int TrailingStop = 45;

extern bool MoveStopOnce = False;

extern int MoveStopWhenPrice = 50;

extern int MoveStopTo = 1;

extern int MaxConcurrentTrades = 2;

//Version 2.01

int BarCount;

int Current;

bool TickCheck = False;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init() {

BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit() {

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

int Order = SIGNAL_NONE;

int Total, Ticket;

double StopLossLevel, TakeProfitLevel;

if (EachTickMode && Bars != BarCount) TickCheck = False;

Total = OrdersTotal();

Order = SIGNAL_NONE;

//+------------------------------------------------------------------+

//| Variable Begin |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Variable End |

//+------------------------------------------------------------------+

//Check position

bool IsTrade = False;

for (int i = 0; i < Total; i ++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {

IsTrade = True;

if(OrderType() == OP_BUY) {

//Close

//+------------------------------------------------------------------+

//| Signal Begin(Exit Buy) |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Signal End(Exit Buy) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//MoveOnce

if(MoveStopOnce && MoveStopWhenPrice > 0) {

if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {

if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {

OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

} else {

//Close

//+------------------------------------------------------------------+

//| Signal Begin(Exit Sell) |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Signal End(Exit Sell) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//MoveOnce

if(MoveStopOnce && MoveStopWhenPrice > 0) {

if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {

if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {

OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

 

tersine uzman danışman sinyalleri

1 Expert Advisor'daki bazı kodları değiştirmek için skype'ta bana yardımcı olabilecek biri var mı?

çok iyi bir tane bulmuş olabilirim sadece küçük bir şey değişmeli

benim skype'ım: ctzulu

çok teşekkürler

Neden: