Nasıl kodlanır? - sayfa 149

 

Gecikmesiz zigzag sinyal sorunu

merhaba kevin07,

Gecikme olmayanlar için uyarılar çalışıyor ancak bir zikzak çizgisine uymuyorlar. Birkaç uyarı aldım ama zikzak çizgi boyanmadı. Ayrıca göstergeyi ilk yüklediğimde uyarı veriyor. Koda bakıp sorunu tespit edip edemeyeceğinizi görebilir misiniz? E-posta uyarısı da harika çalışıyor, eklediğiniz için teşekkürler. Yapabileceğiniz her şey çok takdir edilecektir.

Saygılarımla, Tom

 

gecikmesiz

Merhaba tk748, İndi'yi yüklediğinizde ortaya çıkan ilk uyarı, son en yüksek veya en düşük dipten (birkaç mum önce oluşmuş olabilir) bu yana ticaretin mevcut yönünü söyler. Bir sonraki satır çizilmeden önce ara uyarıların çıktığını duyduğuma üzüldüm. Uyarı için IF deyimi, CurrentDirection != BeforeDirection öğesinin kontrol edilmesi için ek bir filtreye sahip olabilir, böylece bir sonraki satır çizilene kadar ek uyarılar açılmaz. (EA'mı bitirmekle meşgulüm ve şu anda sizin için bununla başa çıkamam.) Gün boyunca çalışmak zorundayım. Gece boyunca, uyumak zorundayım. EA olmadan, pek çok (herhangi bir) işlem yapmayacağım. Önceliğim, bazı kârsız işlemlerin açılmasını önlemek için bir filtre olarak zikzak veya volitilite indi kullanmaktır.

Bu ek kodu bu süreçte nasıl ekleyeceğimi bulursam, size haber vereceğim.

En iyi dileklerimle, kevin07

 

iki kişilik komut dosyası

Bu senaryoyu aldım ama Londra'yı takas etmek için bir zamanlayıcı ayarlama seçeneğine sahip olmayı çok isterim... Bunu eklemek ne kadar zor olurdu ve beni doğrudan doğruya yönlendirebilir veya bana bunun için kodu gösterebilir misiniz? ?

Her zamanki gibi... Yardımın için minnettarım!!

#include

#include

#define LOOK_TO_BUY 1

#define LOOK_TO_SELL 2

extern int Magic_Number = 412625; // set this to a unique number if you intend to use the script simulataneously across many charts on the same account.

extern int UserDefinedSpread = 0; // set this to 0 if you want to use market spread. valid value is >= 0

extern double LotSize = 0.1;

extern int Slippage = 3;

extern int StopLoss = 25; // If you set StopLoss to 0, no stop loss level will be placed.

extern int TakeProfit = 0; // If you set TakeProfit to 0, no stop loss level will be placed.

extern bool OneCancelsOther = true; // This determines if you want the script to stay running and track, then delete the opposite pending order when an order has executed.

extern int NumOfCandles = 3; // This determines how many previous candles you want the EA to look for the High Lows. (buy and sell prices). valid value is > 0

extern int PositionalMarginPips = 40; // The distance excluding spread from the high lows for the opening prices. valid value is >= 0

extern int intervalseconds = 1.0; //The time interval for the script to check your trades. allows fractional seconds.

double BuyPrice = 0;

double SellPrice = 0;

int CustomSpread = 0;

bool KeepRunning = true;

int ticketToDelete = 0;

void GetPrices()

{

double HighestHigh = High[1];

if (NumOfCandles > 1)

{

for (int i=2; i<=NumOfCandles; i++)

{

if (High > HighestHigh)

{

HighestHigh = High;

}

}

}

BuyPrice = HighestHigh + (PositionalMarginPips * Point);

BuyPrice = NormalizeDouble(BuyPrice,Digits);

double LowestLow = Low[1];

if (NumOfCandles > 1)

{

for (i=2; i<=NumOfCandles; i++)

{

if (Low < LowestLow)

{

LowestLow = Low;

}

}

}

SellPrice = LowestLow - (PositionalMarginPips * Point);

BuyPrice = NormalizeDouble(BuyPrice,Digits);

}

void PlaceTrades()

{

double TakeProfitPrice, StopLossPrice;

if (TakeProfit==0)

{

TakeProfitPrice = 0;

}

else

{

TakeProfitPrice = BuyPrice + (TakeProfit * Point);

TakeProfitPrice = NormalizeDouble(TakeProfitPrice,Digits);

}

if (StopLoss == 0)

{

StopLossPrice = 0;

}

else

{

StopLossPrice = BuyPrice - (StopLoss * Point);

StopLossPrice = NormalizeDouble(StopLossPrice,Digits);

}

SendOrders (LOOK_TO_BUY, LotSize, BuyPrice, Slippage, StopLossPrice, TakeProfitPrice, "Straddle Buy", 0);

if (TakeProfit==0)

{

TakeProfitPrice = 0;

}

else

{

TakeProfitPrice = SellPrice - (TakeProfit * Point);

TakeProfitPrice = NormalizeDouble(TakeProfitPrice,Digits);

}

if (StopLoss == 0)

{

StopLossPrice = 0;

}

else

{

StopLossPrice = SellPrice + (StopLoss * Point);

StopLossPrice = NormalizeDouble(StopLossPrice,Digits);

}

SendOrders (LOOK_TO_SELL, LotSize, SellPrice, Slippage, StopLossPrice, TakeProfitPrice, "Straddle Sell", 0);

}

void SendOrders (int BuyOrSell, double LotSize, double PriceToOpen, double Slippage, double SL_Price, double TP_Price, string comments, datetime ExpirationTime)

{

int PositionType, ticket, errorType;

if (BuyOrSell == LOOK_TO_BUY)

{

if (PriceToOpen > Ask)

{

PositionType = OP_BUYSTOP;

}

if (PriceToOpen < Ask)

{

PositionType = OP_BUYLIMIT;

}

Print("Bid: "+Bid+" Ask: "+Ask+" | Opening Buy Order: "+Symbol()+", "+PositionType+", "+LotSize+", "+PriceToOpen+", "+Slippage+", "+SL_Price+", "+TP_Price+", "+comments+", "+Magic_Number+", "+ExpirationTime+", Green");

ticket=OrderSend(Symbol(),PositionType,LotSize,PriceToOpen,Slippage,SL_Price,TP_Price,comments,Magic_Number,ExpirationTime,CLR_NONE);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{

Print("BUY order opened : ",OrderOpenPrice());

}

}

else

{

errorType = GetLastError();

Print("Error opening BUY order : ", ErrorDescription(errorType));

}

}

if (BuyOrSell == LOOK_TO_SELL)

{

if (PriceToOpen < Bid)

{

PositionType = OP_SELLSTOP;

}

if (PriceToOpen > Bid)

{

PositionType = OP_SELLLIMIT;

}

Print("Bid: "+Bid+" Ask: "+Ask+" | Opening Sell Order: "+Symbol()+", "+PositionType+", "+LotSize+", "+PriceToOpen+", "+Slippage+", "+SL_Price+", "+TP_Price+", "+comments+", "+Magic_Number+", "+ExpirationTime+", Red");

ticket=OrderSend(Symbol(),PositionType,LotSize,PriceToOpen,Slippage,SL_Price,TP_Price,comments,Magic_Number,ExpirationTime,CLR_NONE);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{

Print("Sell order opened : ",OrderOpenPrice());

}

}

else

{

errorType = GetLastError();

Print("Error opening SELL order : ", ErrorDescription(errorType));

}

}

}

void GetSpread()

{

if (UserDefinedSpread <= 0)

{

CustomSpread = MarketInfo(Symbol(),MODE_SPREAD);

}

else

{

CustomSpread = UserDefinedSpread;

}

}

int GetNumberOfPending()

{

int count = 0;

int total = OrdersTotal();

if (total > 0)

{

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

{

if(OrderSelect(cnt,SELECT_BY_POS))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic_Number)

{

if(OrderType() != OP_BUY && OrderType() != OP_SELL)

{

ticketToDelete = OrderTicket();

count++;

}

}

}

}

}

return (count);

}

void ManageTrades()

{

// If there's only one pending trade left, assume the other one is opened.

// So Delete this one.

if (GetNumberOfPending() == 1)

{

if (OrderDelete(ticketToDelete))

{

KeepRunning = false;

Alert ("Straddle script has ended");

}

}

}

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

//| script program start function |

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

int start()

{

//----

GetSpread();

GetPrices();

PlaceTrades();

Alert ("Pending Trades Placed. Please Wait...");

int intervalMilliseconds = intervalseconds * 1000;

while (KeepRunning && OneCancelsOther)

{

Sleep(intervalMilliseconds);

ManageTrades();

}

//----

return(0);

}

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

 

gecikmesiz uyarı

merhaba kevin07,

Bu gösterge üzerinde yaptığınız çalışma için teşekkürler. Belki de EA kodlamanız sırasında sinyallerin doğru zamanda nasıl görüneceği hakkında bir fikriniz olur. Bu arada, belki buradaki başka birinin sorunu çözmek için zamanı olur. EA'nız hayırlı olsun.

Saygılarımızla,

Tom

 

Lütfen matigale kodu eklememe yardım edin

Bu EA'yı şu siteyi kullanarak yeni yaptım: Ticaret için basit kurallara dayanan MetaTrader 4 için Expert Advisor Builder .

Sonucu görmek için bu EA'yı deneyebilirsiniz. Lütfen SL = 100, TP = 300 , takip eden durdurma = 70 olarak ayarlayın ve EUR/USD H4'te çalıştırın.

Lütfen bu sistemi takas etmek için martigale koymama yardım eder misiniz:

100 pip = hesap bakiyesinin %2'si olacak şekilde bir miktar kullanın

İşlem n-1 kaybedilirse, pozisyonu kârla kapatana kadar n'nin iki katı tutar.

Çok teşekkürler!

Dosyalar:
 
vinafx:
Bu EA'yı şu siteyi kullanarak yeni yaptım: Ticaret için basit kurallara dayanan MetaTrader 4 için Expert Advisor Builder .

Sonucu görmek için bu EA'yı deneyebilirsiniz. Lütfen SL = 100, TP = 300 , takip eden durdurma = 70 olarak ayarlayın ve EUR/USD H4'te çalıştırın.

Lütfen bu sistemi takas etmek için martigale koymama yardım eder misiniz:

100 pip = hesap bakiyesinin %2'si olacak şekilde bir miktar kullanın

İşlem n-1 kaybedilirse, pozisyonu kârla kapatana kadar n'nin iki katı tutarında işlem yapılır.

Çok teşekkürler!

Biraz zaman ayırmaya değer arkadaşlar! Bu, martigale kodu olmadan ticaretin sonucudur. İlk para yatırma: 10000; İşlem başına 1 lot. SL = 100; TP = 300; Sondaki ST: 70; EUR/USD H4.

Dosyalar:
 

Bu kodu nasıl basitleştirirsiniz?

a ve b arasındaki fark <= c sonra ticaret = doğru, yoksa yanlış..

Şimdiye kadar yaptığım şey bu, eğer biri bana bunu kodlamanın daha kısa bir yolunu gösterebilirse ..

eğer ( a >= b)

{

if (a - b <= c ) ticaret = doğru;

if (a - b > c) takas = yanlış;

}

eğer (bir <b)

{

if (b - a <= c ) ticaret = doğru;

if (b - a > c) takas = yanlış;

}

 

bunu deneyin (c'nin >= 0 olduğunu varsayıyorum)

trade = (MathAbs(a-b) <= c);

Saygılarımızla

mladen

fercan:
Bu kodu nasıl basitleştirirsiniz?

a ve b arasındaki fark <= c sonra ticaret = doğru, yoksa yanlış..

Şimdiye kadar yaptığım şey bu, eğer biri bana bunu kodlamanın daha kısa bir yolunu gösterebilirse ..

eğer ( a >= b)

{

if (a - b <= c ) ticaret = doğru;

if (a - b > c) takas = yanlış;

}

eğer (bir <b)

{

if (b - a <= c ) ticaret = doğru;

if (b - a > c) takas = yanlış;

}
 
mladen:
bunu deneyin (c'nin >= 0 olduğunu varsayıyorum)
trade = (MathAbs(a-b) <= c);

Saygılarımızla

mladen

teşekkür ederim.. daha önce böyle bir şey arıyordum.. teşekkürler..

 

NonLagZigZag_Signal_v2 uyarılarını test edin

tk748:
merhaba kevin07,

Teşekkürler ...Belki ... sinyallerin doğru zamanda nasıl görüneceği konusunda bir fikriniz olur...

Saygılarımızla,

Tom

Merhaba Tom,

Bu ZigZag indi'ye geri dönebildim ve ara uyarıları filtreleyebildim. Bunu hemen gönderiyorum ve test etmedim. Bununla ilgili herhangi bir uyarı ile ilgili sorun bulursanız lütfen bana bildirin.

teşekkürler

kevin07

Dosyalar: