[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 232

 

Dmido писал(а) >>

Güzel gün)


Yine bir sorumla, danışmanlarda geciken bir yanlış anlamadan dolayı uzun süre kaçındım ama yine de bastım. Bekleyen bir siparişte fiyatın nasıl belirlendiğini anlayamıyorum? BID ve ASK yerine ne eklenmeli? Daha önce hesaplanmış herhangi bir değişken mümkün mü? O zaman, sipariş verirken bu fiyatın geçmesi için nasıl puan verilir? Ve sonra böyle bir fiyat olmadığını söyledikleri bir hata denizi var ve böyle devam ediyor ....


Zor değilse cevabını bir kodla açıklayabilirsin... Yoksa aramada çok kürek çektim ama her yerde bu konunun yanında yazıyor... (((

Fikire göre, Ask ve Bid değerleri Ask ve Bid'in mevcut değerleri olmalıdır veya değişkenler daha önce hesaplanmıştır.

Burada bir özellik var, bu değerleri sadece Al ve Sat emirleri için gerçek olarak alabilirsiniz.


Tüm siparişlerin açılmasını en az 6 prosedür şeklinde düzenlemek en iyisidir: OrderSendBuy, OrderSendSell, OrderSendLimitBuy, OrderSendLimitSell, OrderSendStopBuy ve OrderSendStopSell.


not

Unutulmamalıdır ki limit emirler en iyi fiyattan açılır (cari fiyattan belirli sayıda puan girintili) ve stop emirleri cari fiyatın üzerinde veya altında ters yönde verilir.


Piyasadan bir açılış kodu örneği:

 //Procedure OrderSendBuy
void OrderSendBuy ( string WorkSymbol , double LotsSize = 0 , int Slippage = 3 , int SizeSL = 0 , int SizeTP = 100 ,
string Text = NULL , int MN = 0 , datetime Expiration = 0 , color OrdrtColor = CLR_NONE )
{
//----------------------------------------------------------------------------//
// Служебные переменные
double RealAsk , RealBid ; //Текущие Ask и Bid инструмента
double SymbolPoint ; //Размер пункта текущего инструмента
double SL , TP ; // StopLoss и TakeProfit будущей позиции

int TicketNew ; //Тикер новой позиции (в случае удачи, иначе -1)
//----------------------------------------------------------------------------//
//Зашита от дурака
   if ( LotsSize < MarketInfo ( WorkSymbol , MODE_MINLOT ) ) { LotsSize = MarketInfo ( WorkSymbol , MODE_MINLOT ) ; }

//Расчет параметров для новой позиции
SymbolPoint = MarketInfo ( WorkSymbol , MODE_POINT ) ; //Определяем размер пункта
RealAsk = MarketInfo ( WorkSymbol , MODE_ASK ) ; //Определяем Ask
RealBid = MarketInfo ( WorkSymbol , MODE_BID ) ; //Определяем Bid

if ( SizeTP > 0 ) { TP = RealAsk + SizeTP * SymbolPoint ; } else { TP = RealAsk + 100 * SymbolPoint ; }
if ( SizeSL > 0 ) { SL = RealBid - SizeSL * SymbolPoint ; } else { SL = 0 ; }
//Попытка открыть позицию с рынка
TicketNew = OrderSend ( WorkSymbol , OP_BUY , LotsSize , RealAsk , Slippage , SL , TP , Text , MN , Expiration , OrdrtColor ) ;
//Проверка ошибок возникших при открытии новой позиции
if ( TicketNew = = - 1 )
//При открытии произошла ошибка
{
Print ( "Попытка открыть Market-Buy позицию по паре " , WorkSymbol , " окончилась неудачно. Код ошибки #" , GetLastError ( ) )
; }
else
//Позиция успешно установлена
{
Print ( "Успешно создана позиция Market-Buy по паре " , WorkSymbol , " Тикер новой позиции #" , TicketNow ) ;
Alert ( "Open market-Buy, ticket " , TicketNew , " Open price " , RealAsk , " Profit " , TP , " SL " , SL ) ;
}
//----------------------------------------------------------------------------//
}


 

Bekleyen bir sipariş ayarlamak için örnek kod:

 //Procedure OrderSendLimitBuy
void OrderSendLimitBuy ( string WorkSymbol , double LotsSize = 0 , int Slippage = 3 , int LimitStep = 50 , int SizeSL = 0 , int SizeTP = 100 ,
string Text = NULL , int MN = 0 , datetime Expiration = 0 , color OrdrtColor = CLR_NONE )
{
//----------------------------------------------------------------------------//
// Служебные переменные
double RealAsk , RealBid ; //Текущие Ask и Bid инструмента
double OpenPrice ; //Цена на которую будет установлен отложник

double SymbolPoint ; //Размер пункта текущего инструмента
double SL , TP ; // StopLoss и TakeProfit будущей позиции

int TicketNew ; //Тикер новой позиции (в случае удачи, иначе -1)
//----------------------------------------------------------------------------//
//Зашита от дурака
   if ( LotsSize < MarketInfo ( WorkSymbol , MODE_MINLOT ) ) { LotsSize = MarketInfo ( WorkSymbol , MODE_MINLOT ) ; }

//Расчет параметров для новой позиции
SymbolPoint = MarketInfo ( WorkSymbol , MODE_POINT ) ; //Определяем размер пункта
RealAsk = MarketInfo ( WorkSymbol , MODE_ASK ) ; //Определяем Ask
RealBid = MarketInfo ( WorkSymbol , MODE_BID ) ; //Определяем Bid

OpenPrice = RealAsk - LimitStep * SymbolPoint ; //Цена на которую будет установлен отложник

if ( SizeTP > 0 ) { TP = OpenPrice + SizeTP * SymbolPoint ; } else { TP = OpenPrice + 100 * SymbolPoint ; }
if ( SizeSL > 0 ) { SL = RealBid - ( SizeSL + LimitStep ) * SymbolPoint ; } else { SL = 0 ; }
//Попытка открыть позицию с рынка
TicketNew = OrderSend ( WorkSymbol , OP_BUYLIMIT , LotsSize , OpenPrice , Slippage , SL , TP , Text , MN , Expiration , OrdrtColor ) ;
//Проверка ошибок возникших при открытии новой позиции
if ( TicketNew = = - 1 )
//При открытии произошла ошибка
{
Print ( "Попытка создать Limit-Buy по паре " , WorkSymbol , " окончилась неудачно. Код ошибки #" , GetLastError ( ) )
; }
else
//Позиция успешно установлена
{
Print ( "Успешно создан ордер Limit-Buy по паре " , WorkSymbol , " Тикер ордера #" , TicketNow ) ;
Alert ( "Create Limit- Buy, ticket " , TicketNew , " Open price " , OpenPrice , " Profit " , TP , " SL " , SL ) ;
}
//----------------------------------------------------------------------------//
}
 

Merhaba.

Danışmanı test ediyorum.

Dönem Gün (D1) 2008.09.01 00:00 - 2009.08.31 00:00 (2008.09.01 - 2009.09.01)
modeli Tüm onaylar (mevcut en düşük tüm zaman dilimlerine dayalı en doğru yöntem)
Tarihteki barlar 1259 Simüle keneler 8769661 simülasyon kalitesi n/a
Grafik Uyuşmazlığı Hataları 225

Ve uyumsuzluk hataları alıyorum. Onlardan bir şekilde kaçınmak mümkün mü? Bunun çok mu yoksa az sayıda mı hata olduğunu anlamıyorum. Ölçek ağırlıklı olarak yeşil ve koyu yeşil üretir, ancak yalnızca yaklaşık %20'si doludur. Ve simülasyonun kalitesi bir sorun mu?

Belki dikkat bile etmemelisin, anlamıyorum...

Şimdiden teşekkür ederim.

 
RedFish >> :

Merhaba.

Danışmanı test ediyorum.

Dönem Gün (D1) 2008.09.01 00:00 - 2009.08.31 00:00 (2008.09.01 - 2009.09.01)
modeli Tüm onaylar (mevcut tüm en düşük zaman dilimlerine dayalı en doğru yöntem)
Tarihteki barlar 1259 Simüle keneler 8769661 simülasyon kalitesi n/a
Grafik Uyuşmazlığı Hataları 225

Ve uyumsuzluk hataları alıyorum. Onlardan bir şekilde kaçınmak mümkün mü? Bunun çok mu yoksa az sayıda mı hata olduğunu anlamıyorum. Ölçek ağırlıklı olarak yeşil ve koyu yeşil üretir, ancak yalnızca yaklaşık %20'si doludur. Ve simülasyonun kalitesi bir sorun mu?

Belki dikkat bile etmemelisin, anlamıyorum...

Şimdiden teşekkür ederim.

Bilmiyorum, şahsen böyle şeylerle asla uğraşmam (çünkü neredeyse her zaman stratejileri görselleştirmeden test ederim).


İşte benzer bir test periyoduyla D1'de olanlar

1. Deneme: Tarihte barlar - Simüle edilen 1302 Kene - 4313293 Simülasyon kalitesi - %50,00

Deneme #2: Tarihteki çubuklar - 1303 Kene simülasyonu - 4323442 Modelleme kalitesi - %50,00
Grafik uyuşmazlığı hataları - 0.

 
Interesting писал(а) >>

Bilmiyorum, şahsen böyle şeylerle asla uğraşmam (çünkü neredeyse her zaman stratejileri görselleştirmeden test ederim).

İşte benzer bir test periyoduna sahip Yahudi D1'de olanlar

Deneme #1: Tarihte barlar - Simüle edilen 1302 Keneler - 4313293 Simülasyon kalitesi - 50,00 %

Deneme #2: Geçmişteki barlar - 1303 Keneler simüle edildi - 4323442 Simülasyon kalitesi - 50,00 %
Grafik uyuşmazlığı hataları - 0 .

Teşekkür ederim.

Şimdi, otomattaki MT'nin son 512 çubuğu sürdüğünü ve gerisini doldurduğunu düşünüyorum .... bunun gibi bir şey (nasıl daha doğru ifade edeceğimi bilmiyorum). Trend olan bir Uzman Danışmanım var ve mesafe benim için önemli ama 512 bar yeterli değil.

Alıntıların geçmişini kendiniz bir yere indirmek ve daha sonra sürmek mümkün mü?

Sayesinde.

 

İyi günler, sevgili varlıklar.

Son zamanlarda aptalca bir şey, muhtemelen hava etkiler.

Dizi öğelerinin sayısı harici bir değişken tarafından ayarlanmışsa, lütfen bana tek boyutlu bir diziyi (göstergede) nasıl bildireceğimi söyleyin.

Teşekkür ederim.

 
RedFish >> :

Merhaba.

Danışmanı test ediyorum.

Dönem Gün (D1) 2008.09.01 00:00 - 2009.08.31 00:00 (2008.09.01 - 2009.09.01)
modeli Tüm onaylar (mevcut en düşük tüm zaman dilimlerine dayalı en doğru yöntem)
Tarihteki barlar 1259 Simüle keneler 8769661 simülasyon kalitesi n/a
Grafik Uyuşmazlığı Hataları 225

Ve uyumsuzluk hataları alıyorum. Onlardan bir şekilde kaçınmak mümkün mü? Bunun çok mu yoksa az sayıda mı hata olduğunu anlamıyorum. Ölçek ağırlıklı olarak yeşil ve koyu yeşil üretir, ancak yalnızca yaklaşık %20'si doludur. Ve simülasyonun kalitesi bir sorun mu?

Belki dikkat bile etmemelisin, anlamıyorum...

Şimdiden teşekkür ederim.

Aşağıdaki IMHO'm, ancak alıntı olarak, lütfen yanılıyorsam beni düzeltin:

Gerçek şu ki, 59. dakikada Kapat, M15'te 45'te Kapat, M30'da Kapat 30 ve H1'de Kapat başa çıkamaz.

Eşleştirmek için, daha kısa bir süre için alıntı sunucusundan geçmişi indirerek kendi geçmişinizi öldürmeniz gerekir.

ve indirilen geçmişe göre tüm zaman dilimlerini yeniden hesaplama.

Aynı zamanda, gerçek hayatta farklı zaman dilimlerinde Kapanış da eşleşmeyebilir.

Onlar. iyi bir şekilde, daha küçük bir zaman dilimi almanız ve HANDS ile daha büyük bir zaman diliminin değerlerini saymanız gerekir.

 
alderru >> :

İyi günler, sevgililer.

Son zamanlarda aptalca bir şey, muhtemelen hava etkiler.

Dizi öğelerinin sayısı harici bir değişken tarafından ayarlanmışsa, lütfen bana tek boyutlu bir diziyi (göstergede) nasıl bildireceğimi söyleyin.

Teşekkür ederim.

int y[];

harici int blah-blah = 100;

içinde() {

ArrayResize(y, blah-blah);

}

 
jartmailru писал(а) >>

Aşağıdaki IMHO'm, ancak alıntı olarak, lütfen yanılıyorsam beni düzeltin:

Gerçek şu ki, 59. dakikada Kapat, M15'te 45'te Kapat, M30'da Kapat 30 ve H1'de Kapat başa çıkamaz.

Eşleştirmek için, daha kısa bir süre için alıntı sunucusundan geçmişi indirerek kendi geçmişinizi öldürmeniz gerekir.

ve indirilen geçmişe göre tüm zaman dilimlerini yeniden hesaplama.

Aynı zamanda, gerçek hayatta farklı zaman dilimlerinde Kapanış da eşleşmeyebilir.

Onlar. iyi bir şekilde, daha küçük bir zaman dilimi almanız ve HANDS ile daha büyük bir zaman diliminin değerlerini saymanız gerekir.

Ö! Eller!!!

Cevap için teşekkürler. Ama ilk bölüme bakılırsa, hataların benim için kritik olmadığını fark ettim. Ayrı olarak, bu hataların ortaya çıkma mekanizmasını açıkladığınız için çok teşekkürler.

 
Baylar, koddaki bir sorun yardımcı olabilir!
 for ( shift = CountBars ; shift > = 0 ; shift - - ) 
{ 
         cci1 = iCCI ( NULL , 0 , kCCI , PRICE_TYPICAL , shift - 1 ) ;
         cci2 = iCCI ( NULL , 0 , kCCI , PRICE_TYPICAL , shift ) ;   

         if ( cci1 > 100 ) // (b4plusdi>b4minusdi && nowplusdi<nowminusdi)
         {
         val1 [ shift ] = Low [ shift ] - 5 * Point ;
         if ( flagval2 = = 0 ) { Alert ( "не забудь отправить письмо о БАЙ" ) ; flagval2 = 1 ; flagval1 = 0 ; }
         }
         if ( cci1 < - 100 ) //(b4plusdi<b4minusdi && nowplusdi>nowminusdi) 
         {
         val2 [ shift ] = High [ shift ] + 5 * Point ;
         if ( flagval1 = = 0 ) { Alert ( "не забудь отправить письмо о СЕЛЛ" ) ; flagval2 = 0 ; flagval1 = 1 ; }
         }
   }
   return ( 0 ) ;
}

en üstte şu var:

int flagval1=0;
int flagval2=0;

Bu bayraklarla özellikle endişeli miyim, kim taze bir zihne bakabilir?

-----------------

ve danışman kodundaki başka bir sorun:

 //---------------------------------------------------------------- 5.1 
   cci1 = iCCI ( NULL , 0 , kCCI , PRICE_TYPICAL , 1 ) ;

   if ( New_Bar = = true & & cci1 > 100 & & flagval2 = = 1 )                  // && MA_3_t==0   && wayDOWN==true
     {                                             
         Opn_B = true ; New_Bar = false ; Cls_S = true ;                                   
         flagval1 = 1 ;
         flagval2 = 0 ;
     }
     
   if ( New_Bar = = true & & cci1 < - 100 & & flagval1 = = 1 )                  // && MA_4_t==0  && wayUP==true
     {                                                    
         Opn_S = true ; New_Bar = false ; Cls_B = true ;
         flagval2 = 1 ;
         flagval1 = 0 ;
     }
//--------------------------------------------------------------- 6 --

ticaret yapmıyor! Belki birileri yeni bir bakış atar.

100 (-100) ticarete girer girmez aptalca karar verildi!

Bir danışman ekliyorum!

Dosyalar:
stoch_cros.mq4  17 kb