Sormak! - sayfa 129

 
forexarchitect:
selam beyler

Burada bir sorum var... Aşağıdakileri nasıl değiştirebilirim;

harici çift MaxLot = 1.50;

double max_lot = GetMaxLot(OP_BUY, OP_SELL);

if (max_lot >= MaxLot) lot = CalcHedgeLot(order_type);

(order_type)]: ", parti);

if (lot == -1) dönüş (lot);

lot = NormalizeDouble(lot, LotPrec);

if (lot > MaxLot) lot = MaxLot;

if (lot < MinLot) lot = MinLot;

dönüş (lot);

}

OP_BUY AND OP_SELL için yukarıdaki kontrol

soru: bunu herhangi bir OP_BUY VEYA herhangi bir OP_SELL olarak nasıl değiştiririm

takdir etmek

GetMaxLot() fonksiyon kodunu değiştirmelisiniz ya da GetMaxLot(OP_BUY, OP_BUY); işlevini kullanabilirsiniz; ve GetMaxLot(OP_SELL, OP_SELL); (koda bağlıdır - böyle yapabilir veya yapamazsınız).

Ama denemeye değer sanırım

gitti

 
Goen:
Aradığın şey bu mu?

-----------

int barlar_count=WindowBarsPerChart();

int bar=WindowFirstVisibleBar();

-----------

gitti

Teşekkürler Goen.

 
Goen:
GetMaxLot() fonksiyon kodunu değiştirmelisiniz ya da GetMaxLot(OP_BUY, OP_BUY); işlevini kullanabilirsiniz; ve GetMaxLot(OP_SELL, OP_SELL); (koda bağlıdır - böyle yapabilir veya yapamazsınız).

Ama denemeye değer sanırım

gitti

cevapladığınız için teşekkürler..

burada neyi değiştirmem gerekiyor? yardımınıza minnettar olurum

çift GetMaxLot(int type1, int type2)

{

çift max_lot = 0.0;

int cnt = SiparişlerToplam();

için (int i=0; i < cnt; i++)

{

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

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

(OrderMagicNumber() != Magic) devam ederse;

(OrderType() != type1 && OrderType() != type2) devam ederse;

if (max_lot == 0 || OrderLots() >= max_lot)

{

max_lot = OrderLots();

}

}

dönüş (max_lot);

}

 

burada biraz kayıp...

 

tis göstergesine nasıl uyarı eklenir?

Gerçekten iyi çalışan bir MA geçiş göstergesine sahibim, ancak sesli uyarı desteğine sahip değil, beni çok fazla ticareti kaçırıyor, meta hakkında hiçbir şey bilmediğim için bana bu göstergeye nasıl uyarı ekleneceğini öğretebilir misiniz? kod şey....teşekkürler...

işte göstergenin kendisi ile birlikte göstergenin kodu, teşekkürler...

/*[[

İsim := EMA Çapraz

Yazar := Hapsa

Bağlantı := http://www.metaquotes.net/

Ayrı Pencere := Hayır

Ayrı Pencere := Hayır

İlk Renk := Kırmızı

İlk Çekiliş Türü := Sembol

İlk Sembol := 108

İkinci Veriyi Kullan := Evet

İkinci Renk := KoyuZeytinYeşil

İkinci Çekiliş Tipi := Sembol

İkinci Sembol := 108

]]*/

#özellik telif hakkı "Hapsa"

#özellik bağlantısı ""

harici int SlowPeriod=20;

harici int FastPeriod=5;

#özellik göstergesi_tamponları 3

#özellik göstergesi_chart_window

#özellik göstergesi_renk1 Kırmızı

#özellik göstergesi_color2 Yeşil

çift L20[];

çift L50[];

çift vardiya=0,val1=0,val2=0;

int init()

{

Gösterge Tamponları(3);

SetIndexStyle(0,DRAW_ARROW);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(0, 108);

SetIndexArrow(1, 108);

SetIndexBuffer(0,L20);

SetIndexBuffer(1,L50);

//---- göstergeler

//----

dönüş(0);

}

int başlangıç()

{

int counted_bars=IndicatorCounted();

//----

int i = Çubuklar - sayılan_barlar - 1;

(i>=0) iken

{

değer1=0;

val2=0;

double iMaSlowPrevious = iMA(NULL,0,SlowPeriod,0,MODE_EMA, PRICE_CLOSE, i-1);

double iMaSlowCurrent = iMA(NULL,0,SlowPeriod,0,MODE_EMA, PRICE_CLOSE, i);

double iMaFastPrevious = iMA(NULL,0,HızlıPeriod,0,MODE_EMA, PRICE_CLOSE, i-1);

double iMaFastCurrent = iMA(NULL,0,FastPeriod,0,MODE_EMA, PRICE_CLOSE, i);

if (iMaFastPreviousiMaSlowCurrent ) val1=Yüksek;

if (iMaFastPrevious>iMaSlowPrevious && iMaFastCurrent<iMaSlowCurrent ) val2=Düşük;

L20=val1+5*Nokta;

L50=val2-5*Nokta;

ben--;

}

//----

dönüş(0);

}

Dosyalar:
cross.mq4  2 kb
cross.ex4  3 kb
 
forexarchitect:
cevapladığınız için teşekkürler..

burada neyi değiştirmem gerekiyor? yardımınıza minnettar olurum

çift GetMaxLot(int type1, int type2)

{

çift max_lot = 0.0;

int cnt = SiparişlerToplam();

için (int i=0; i < cnt; i++)

{

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

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

(OrderMagicNumber() != Magic) devam ederse;

(OrderType() != type1 && OrderType() != type2) devam ederse;

if (max_lot == 0 || OrderLots() >= max_lot)

{

max_lot = OrderLots();

}

}

dönüş (max_lot);

}

Evet, GetMaxLot(OP_BUY,OP_BUY); kullanabilirsiniz. sadece açık alım satım için maksimum lotu almak ve GetMaxLot(OP_SELL,OP_SELL); sadece açık ticaret satmak için maxlot almak için.

Bu kodu "if (max_lot == 0 || OrderLots() >= max_lot)" ifadesini "if (OrderLots() > max_lot)" ile sadeleştirebilirsiniz.

Coz, max_lot = 0 ise, otomatik olarak açık işlemlerin herhangi bir lotundan daha düşük olacaktır. Ve ">=" işareti aynı değere sahipse ">" ile değiştirin coz, aynı değerle max_lot'u güncellemeye gerek yok, gereksiz çaba. Yalnızca yeni değer max_lot'tan büyükse güncellenir.

Bu kodu değiştirerek, işleminizi daha hızlı hale getirebilir.

gitti

 

stoploss sorunu

Merhaba,

Tüm bu forex/metatrading konusunda yeniyim ama hepsinin nasıl çalıştığını anlamaya çalışıyorum.

Şimdi bir EA yazmaya çalışıyorum ve korkarım temel bir şeyi kaçırıyorum.

Kodumda değiştirirsem

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",MAGIC,0,Kırmızı);

ile

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*10,0,"",MAGIC,0,Red);

Ve bu yeni sürümü strateji test cihazında test edin, DAHA AZ sipariş alıyorum. Stoploss eklemek , sipariş girişlerinin sayısını nasıl azaltabilir? Stop emri eklemenin emirlerin daha erken çıkmasına ve dolayısıyla yeni emirlerin daha hızlı eklenebilmesine neden olması durumunda sayının artacağını tahmin edebiliyorum ama DAHA AZ emir...?

Herhangi bir fikir?

teşekkürler

 
azertyken2:
Merhaba,

Tüm bu forex/metatrading konusunda yeniyim ama hepsinin nasıl çalıştığını anlamaya çalışıyorum.

Şimdi bir EA yazmaya çalışıyorum ve korkarım temel bir şeyi kaçırıyorum.

Kodumda değiştirirsem

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",ordercount,0,Red);

ile

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*10,0,"",ordercount,0,Red);

Ve bu yeni sürümü strateji test cihazında test edin, DAHA AZ sipariş alıyorum. Stoploss eklemek, sipariş girişlerinin sayısını nasıl azaltabilir? Stop emri eklemenin emirlerin daha erken çıkmasına ve dolayısıyla yeni emirlerin daha hızlı eklenebilmesine neden olması durumunda sayının yükseleceğini tahmin edebiliyorum ama DAHA AZ emir...?

Herhangi bir fikir?

teşekkürler

10 pip, komisyoncu tarafından dayatılan stop limitine çok yakın olabilir (brokerlar arasında değişir) - yani, minimum 10 pip ise ve fiyat, emir verilirken bunun içinde 1 pip sallanırsa, emir reddedilecektir.. .

 

Omlet, haklısın stoploss arttırarak düzeldi, teşekkürler! :-)

 
#property indicator_color1 Magenta

#property indicator_color2 Yellow

extern bool TrendDirectionUp=true;

string Color1;

string Color2;

int init() {

if(TrendDirectionUp==true)//Conditionj 1

{

Color1=Yellow;

Color2=CLR_NONE;

}

if(TrendDirectionUp==false)//Condition2

{

Color1=CLR_NONE;

Color2=Magenta;

}

SetIndexStyle(0,DRAW_ARROW,0,star_size,Color1);

SetIndexStyle(1,DRAW_ARROW,0,star_size,Color2);

SetIndexArrow(0,172);//333

SetIndexArrow(1,172);//334

SetIndexBuffer(0,b1);

SetIndexBuffer(1,b2);

return(0);

}

Şu anda, hem Renk(ler) 1 hem de 2 grafikte 'siyah' gösteriyor!!

Herhangi bir uzman Guru bu sorunu çözmeme yardım edebilir mi???

Şimdiden teşekkürler!