Nasıl kodlanır? - sayfa 60

 

teşekkürler Kalenzo,

OP_BUYLIMIT ile denedim ama çalışmıyor.

OP_BUYSTOP ile deneyeceğim.

 

hızlı kodlama sorusu

Ortalama değerde (tüm kapanış fiyatlarının) ekrana yatay bir çizgiyi nasıl koyarsınız? Bunun için özel bir kod var mı?

 

basit koparma EA

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

//| SimpleBreakoutEA.mq4 |

//| |

//| |

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

#property copyright "jjk2"

#property link ""

//---- input parameters

extern int ____TIME_RANGE____;

extern int TimeRange = 1; // # of Hours to look back from TimeEnd. ex) if breakout is @ 22:00 GMT to 23:00 GMT. Total TimeRange to lookback is 8 hrs.

extern int TimeBegin = 22;

extern int TimeEnd = 23;

extern int CancelTime = 20; // ALL REMAINING ORDERS WILL BE CANCELED AT THIS INDICATED TIME.

extern int ______FILTERS______;

extern int TriggerFilter = 0;

extern bool AllowBreakEven = True;

extern int ______ORDERS______;

extern double Lots = 0.1;

extern int StopLoss = 50;

extern int TakeProfit = 100;

extern int Slippage = 2;

extern int MagicNumber = 23423;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

int start()

{

// OPEN ORDERS @ HIGH/LOW from TIMEBEGIN to TimeEND

if (Hour() >= TimeBegin-1 && Hour() >= TimeEnd)

{

int HH = iHighest(NULL, 0, MODE_HIGH,TimeRange,0);

int LL = iLowest(NULL, 0, MODE_LOW,TimeRange,0);

}

double SL_High = Ask - (StopLoss * Point);

double SL_Low = Bid + (StopLoss*Point);

double TP_High = Ask + (TakeProfit*Point);

double TP_Low = Bid - (TakeProfit*Point);

if ( Ask > HH + TriggerFilter) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, SL_High, TP_High, "Breakout Buy", MagicNumber, NULL, Blue);

if ( Bid < LL + TriggerFilter) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, SL_Low, TP_Low, "Breakout Sell", MagicNumber, NULL, Red);

// MOVE SL @ BreakEven if allowed. MarketPrice distance Open Price > stop*point, then stop must equal to MarketPrice - Stop*point as new stoploss.

int total = 0;

if ( AllowBreakEven == True )

{

for(total = OrdersTotal() - 1; total >= 0; total--)

{

OrderSelect(total, SELECT_BY_POS);

if ( Bid - OrderOpenPrice() > SL_High*Point )

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - SL_High*Point, OrderTakeProfit(),0, CLR_NONE);

if ( OrderOpenPrice() - Ask > SL_Low*Point )

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + SL_Low*Point , OrderTakeProfit(),0, CLR_NONE);

}

}

return(0);

}

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

nedense çalışmıyor.... nedenini bilen var mı?

 
 

Gösterge EA'ya nasıl çevrilir?

Merhaba, bir göstergeyi EA'ya nasıl çevireceğimi öğrenebilir miyim?

Belirli koşullar söz konusu olduğunda birçok göstergede ok işareti vardır ve bunları EA ile test etmek istiyorum.

EA'nın oluşan oka göre alım satım yapmasını istiyorum.

Birisi bana yardım edebilir mi? Teşekkürler.

 
 

Ekli göstergeyi EA'ya çevirmeye ne dersiniz?

Birisi yardım edebilir mi? Teşekkürler.

 
Dosyalar:
envelopes.mq4  3 kb
 

Kod Yapısı

Merhaba,

Metatrader'da yeniyim ama programlama konusunda çok deneyimliyim. MT'de bazı örnek Uzman Danışmanlar ve biraz karmaşık Göstergeler oluşturdum. Açık olmayan şey, oldukça karmaşık bir EA'nın nasıl yapılandırılacağıdır. EA'nın farklı kurulum koşullarını kontrol etmek için bazı "sinyal" işlevlerini çağırmasını istiyorum.

Bu fonksiyonları nasıl kodlamalıyım?

1. EA'da "satır içi" işlevler olarak

2. Ekrana yazmak yerine değer döndüren "ayrı" Göstergeler olarak mı?

3. iMA'yı çağırmak gibi çağrılacak başka bir "ayrı" işlev

Alternatif 1'i seçersem, EA'daki satır içi işlev Kapat'ı kullanarak son 200 çubuk boyunca çalışabilir ve iMA'yı çağırabilir mi?

2. alternatif tamam mı? Bir gösterge kodlanırken, elbette EA için gerekli olmayan tüm "mevcut" çubuklar işlenir.

Bana alternatif 3 mantıklı bir seçim gibi görünüyor ama nasıl yapılandırılacağından emin değilim, böylece geriye dönük testlerde çalışacak ve ona ne iletmem gerekiyor ve işlevin varsayılan olarak neye erişimi var, örneğin Kapat

"Sinyal" işlevinde oluşturmam gerekenlere bir örnek olarak, mevcut trendin ne olduğu ve ne zaman başladığıdır. Bir göstergede kodladım, böylece gerçek kodu nasıl yapacağımı biliyorum.

Herhangi bir tavsiye için minnettarım.

Ingvar

 
ingvar_e:
Merhaba,

Metatrader'da yeniyim ama programlama konusunda çok deneyimliyim. MT'de bazı örnek Uzman Danışmanlar ve biraz karmaşık Göstergeler oluşturdum. Açık olmayan şey, oldukça karmaşık bir EA'nın nasıl yapılandırılacağıdır. EA'nın farklı kurulum koşullarını kontrol etmek için bazı "sinyal" işlevlerini çağırmasını istiyorum.

Bu fonksiyonları nasıl kodlamalıyım?

1. EA'da "satır içi" işlevler olarak

2. Ekrana yazmak yerine değer döndüren "ayrı" Göstergeler olarak mı?

3. iMA'yı çağırmak gibi çağrılacak başka bir "ayrı" işlev

Alternatif 1'i seçersem, EA'daki satır içi işlev Kapat'ı kullanarak son 200 çubuk boyunca çalışabilir ve iMA'yı çağırabilir mi?

2. alternatif tamam mı? Bir gösterge kodlanırken, elbette EA için gerekli olmayan tüm "mevcut" çubuklar işlenir.

Bana alternatif 3 mantıklı bir seçim gibi görünüyor ama nasıl yapılandırılacağından emin değilim, böylece geriye dönük testlerde çalışacak ve ona ne iletmem gerekiyor ve işlevin varsayılan olarak neye erişimi var, örneğin Kapat

"Sinyal" işlevinde oluşturmam gerekenlere bir örnek olarak, mevcut trendin ne olduğu ve ne zaman başladığıdır. Bir göstergede kodladım, böylece gerçek kodu nasıl yapacağımı biliyorum.

Herhangi bir tavsiye için minnettarım.

Ingvar

Muhtemelen bunu nasıl yapacağınızı zaten biliyorsunuz, öyleyse çok üzgünüm.

Mevcut çubuğun hareketli ortalaması :

iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE, 0 );

200 bar önce hareketli ortalama.

iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE, 200 );

Geçmişteki herhangi bir çubuğa güncel olan herhangi bir çubuktan hareketli ortalamayı çağırabilirsiniz.