Ve diğer insanların emirleri (diğer semboller ve diğer büyüler için) ??? Test cihazında çalışacak, ancak hesapta bu danışman dışında başka bir şey varsa, o zaman şu şekilde daha doğrudur:
Sevgili, bu tür hesaplamalarla adamı yanıltacaksınız ve açıklamaları nasıl okuyacağını bilmiyor. Kafasının nasıl karıştığını bir düşünün, bu yüzden onun için daha açıklayıcı olsun diye yazdım.
Sadece bir uzmanla, Delta işlevinin nasıl çalıştığı konusunda hala kafam karıştı İşlemler benim şartlarımda çalışmıyor Delta=30 Bu, EA'nın puan olarak +-30 pozisyon açmasını istediğim anlamına geliyor. Ve büyüme ve düşüşle 5-10 noktada açılıyor, belli değil....
Gerçekten, Delta işlevi nasıl olduğunu anlamıyor :( Başka basit çözümler var mı? Burada bir fonksiyon kazdım Mesafe =30 // Mevcut fiyattan bekleyen emirlerin fiyatına olanmesafe Sadece bekleyen siparişler için uygulanamaz mı? Fikrin özü aynıdır: Mevcut çubuğu, açılış fiyatını takip edin ve 5 dakikalık bir çubuk sırasında fiyat bu fiyattan yükselir veya düşerse, diyelim ki bu 5 dakikalık açılış pazarından 30 puan uzakta. bar, ancak o zaman bir pozisyon açın. ..... Bekleyen siparişlerle stratejim çalışmıyor.....
Görünüşe göre, burada satın alırken ve satarken Delta'nın işaretleri (kutupluluğu) ile ilgilenmeniz gerekiyor, "çünkü" yukarıdaki kodda, örneğin satın alırken, değer ( iOpen (NULL,0,0)-Ask her zaman negatif olsun ve bar açılış fiyatından hemen sonra işlem açılır (iOpen(NULL,0,0)-Ask>=Delta...
Öyleyse deneyin (satın alın) -
if(Ask - iOpen(NULL,0,0)>=Delta*Point)//Цена выросла на больше или = Delta пунктов
int başlangıç() { if( OrdersTotal() !=0) dönüş; //Yalnızca bir işlem gerçekleştirin.
//---- if (Bid - iOpen(NULL,0,0)<=Delta*Puan) //Fiyat düştü veya = Delta puan //Null-tech enstrüman, 0-akım tablosu, 0-geçerli çubuğu izleme { bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Puan,Ask+TakeProfit*Puan,"Satın Alındı",MagicNumber,11111,Green);
} if (Ask - iOpen(NULL,0,0)>=Delta*Puan) //Fiyat daha fazla artırıldı veya = Delta puan { bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Puan,Teklif AlKar*Puan,"Satıldı",MagicNumber,22222,Green); } //---- dönüş(0); }
Şu satırlarda Sor ile Bid'i düzelttim mi yoksa kafam mı karıştı:
if (Bid - iOpen(NULL,0,0)<=Delta*Point) //Цена упала на меньше или = Delta пунктов
if (Ask - iOpen(NULL,0,0)>=Delta*Point) //Цена выросла на больше или = Delta пунктов
{
if( OrdersTotal() !=0) dönüş;
//----
if (iOpen(NULL,5,0)-Bid>Delta*Point) //Fiyat Delta puanlarından fazla düştü
........
if( OrdersTotal ()!=0) dönüş;
Ve diğer insanların emirleri (diğer semboller ve diğer büyüler için) ??? Test cihazında çalışacak, ancak hesapta bu danışman dışında başka bir şey varsa, o zaman şu şekilde daha doğrudur:
Mevcut sembol için verilen (ona iletilen) sihirle açık pozisyon yoksa fonksiyon false döndürür.
Kafasının nasıl karıştığını bir düşünün, bu yüzden onun için daha açıklayıcı olsun diye yazdım.
Her iki dava da yakalandı, çok insan teşekkürler.
İşlemler benim şartlarımda çalışmıyor
Delta=30
Bu, EA'nın puan olarak +-30 pozisyon açmasını istediğim anlamına geliyor. Ve büyüme ve düşüşle 5-10 noktada açılıyor, belli değil....
Başka basit çözümler var mı?
Burada bir fonksiyon kazdım
Mesafe =30 // Mevcut fiyattan bekleyen emirlerin fiyatına olan mesafe
Sadece bekleyen siparişler için uygulanamaz mı?
Fikrin özü aynıdır: Mevcut çubuğu, açılış fiyatını takip edin ve 5 dakikalık bir çubuk sırasında fiyat bu fiyattan yükselir veya düşerse, diyelim ki bu 5 dakikalık açılış pazarından 30 puan uzakta. bar, ancak o zaman bir pozisyon açın. .....
Bekleyen siparişlerle stratejim çalışmıyor.....
Kodun tamamını buraya yazar mısın? Ve bakalım Delta neden çalışmıyor..
//+------------------------------------------------------------------+ //| Expert-000001.mq4 | //| Copyright © 2008, salesman*** | //| http://www.forexgrand.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, salesman***" #property link "http://www.forexgrand.ru" #include <WinUser32.mqh> #include <stdlib.mqh> extern double StopLoss=30; // Stop Loss extern double TakeProfit=3; // Take Profit extern double Lots=0.5; // Объем сделки в % extern double Slippage =3; // Максимальное отклонение от запрошенной цены extern double MagicNumber=0; // Order ID int ticket; int Delta=30; // Сигнал приказа в пунктах int TimeForSleep = 10; // Время для отдыха после сделки //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(OrdersTotal()!=0) return; //Выполнять только одну сделку. //---- if (iOpen(NULL,0,0)-Ask>=Delta*Point) //Цена упала больше или = Delta пунктов //Null-тек инструмент, 0-тек.график, 0-слежка за тек баром { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Купил",MagicNumber,11111,Green); } if (iOpen(NULL,0,0)-Bid<=Delta*Point) //Цена выросла больше или = Delta пунктов { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Продал",MagicNumber,22222,Green); } //---- return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+İşte kodun tamamı .....
Evet kesinlikle. Delta çalışmıyor...
Görünüşe göre, burada satın alırken ve satarken Delta'nın işaretleri (kutupluluğu) ile ilgilenmeniz gerekiyor, "çünkü" yukarıdaki kodda, örneğin satın alırken, değer ( iOpen (NULL,0,0)-Ask her zaman negatif olsun ve bar açılış fiyatından hemen sonra işlem açılır (iOpen(NULL,0,0)-Ask>=Delta...
Öyleyse deneyin (satın alın) -
{
if( OrdersTotal() !=0) dönüş; //Yalnızca bir işlem gerçekleştirin.
//----
if (Bid - iOpen(NULL,0,0)<=Delta*Puan) //Fiyat düştü veya = Delta puan
//Null-tech enstrüman, 0-akım tablosu, 0-geçerli çubuğu izleme
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Puan,Ask+TakeProfit*Puan,"Satın Alındı",MagicNumber,11111,Green);
}
if (Ask - iOpen(NULL,0,0)>=Delta*Puan) //Fiyat daha fazla artırıldı veya = Delta puan
{
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Puan,Teklif AlKar*Puan,"Satıldı",MagicNumber,22222,Green);
}
//----
dönüş(0);
}