Kapanış pozisyonları. Göstergeye göre. - sayfa 8

 
Lukyanov :

Net kazanç 6157.73


Sergey, 6.000 - 9.000 işlemle 6.000$ kar.

1. MOJ nedir?

2. Günde 1500 işlem - ne tür bir komisyoncu hayatta kalır?

 

Herkese iyi akşamlar! Başka bir sorun vardı. Lütfen. bana kimin yapabileceğini söyle - bir ifade yaz

gösterge için hann = iCustom(.... .... .... ) -

En azından en ilkel biçimde - Lb parametresini ve bar numarasını ayarlamak için...

 /+------------------------------------------------------------------+
//|                                                          SSL.mq4 |
//|                                                          Kalenzo |
//|                                      bartlomiej.gorski@gmail.com |
//+------------------------------------------------------------------+
#property copyright " Kalenzo "
#property link        " bartlomiej.gorski@gmail.com "
//----
#property indicator_buffers 1
#property indicator_color1 Blue
extern int Lb = 10 ;
double ssl [] , Hld , Hlv ;
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ()
   {
//---- indicators
   SetIndexBuffer ( 0 , ssl ) ;
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 ) ;
//----
   return ( 0 ) ;
   }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit () {    return ( 0 ) ;   }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ()
   {
//----
   for ( int i = Bars - Lb ; i >= 0 ; i -- )      {
       if ( Close [ i ] > iMA ( Symbol () , 0 , Lb , 0 , MODE_SMA , PRICE_HIGH , i + 1 ))
         Hld = 1 ;
       else          {
         if ( Close [ i ] < iMA ( Symbol () , 0 , Lb , 0 , MODE_SMA , PRICE_LOW , i + 1 ))
             Hld =- 1 ;
         else
             Hld = 0 ;
         }
       if ( Hld != 0 )
         Hlv = Hld ;
       if ( Hlv ==- 1 )
         ssl [ i ] = iMA ( Symbol () , 0 , Lb , 0 , MODE_SMA , PRICE_HIGH , i + 1 ) ;
       else
         ssl [ i ] = iMA ( Symbol () , 0 , Lb , 0 , MODE_SMA , PRICE_LOW , i + 1 ) ;
     }
//----
   return ( 0 ) ;
   }
//+------------------------------------------------------------------+
İşte tablo -
 
rid :

Herkese iyi akşamlar! Başka bir sorun vardı. Lütfen. yardım, kim yapabilir - bir ifade yazabilir

gösterge için hann = iCustom (.... .... .... )

 iCustom ( Symbol () , Period () , " SSL " , indLb , 0 , bar ) ;
 

Teşekkürler kompost !

 

Tünaydın. Lütfen. söylemek.

Kuvvet indeksi göstergesi MT4'e monte edilmiştir. Bipolar, bkz. 0 noktasına çizgi

İşte onun kodu.

 #property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int ExtForcePeriod = 13 ;
extern int ExtForceMAMethod = 0 ;
extern int ExtForceAppliedPrice = 0 ;
//---- buffers
double ExtForceBuffer [ ] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ( )
  {
   string sShortName ;
   SetIndexBuffer ( 0 , ExtForceBuffer ) ;
//---- indicator line
   SetIndexStyle ( 0 , DRAW_LINE ) ;
//---- name for DataWindow and indicator subwindow label
   sShortName = "Force(" + ExtForcePeriod + ")" ;
   IndicatorShortName ( sShortName ) ;
   SetIndexLabel ( 0 , sShortName ) ;
//---- first values aren't drawn
   SetIndexDrawBegin ( 0 , ExtForcePeriod ) ;
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Force Index indicator                                            |
//+------------------------------------------------------------------+
int start ( )
  {
   int nLimit ;
   int nCountedBars = IndicatorCounted ( ) ;
//---- insufficient data
   if ( Bars < = ExtForcePeriod ) return ( 0 ) ;
//---- last counted bar will be recounted
   if ( nCountedBars > ExtForcePeriod ) nCountedBars - - ;
   nLimit = Bars - nCountedBars ;
//---- Force Index counted
   for ( int i = 0 ; i < nLimit ; i + + )
      ExtForceBuffer [ i ] = Volume [ i ] *
( iMA ( NULL , 0 , ExtForcePeriod , 0 , ExtForceMAMethod , ExtForceAppliedPrice , i ) -
iMA ( NULL , 0 , ExtForcePeriod , 0 , ExtForceMAMethod , ExtForceAppliedPrice , i + 1 ) ) ;
//---- done
   return ( 0 ) ;
  }


Yine de. Tüm göstergenin artı (veya eksi, nokta değil) bölgesinde çizilmesine ihtiyacım var.

Programlı olarak yapın.

Onlar. öyle değil: double force=( iForce +10), yani programlı olarak!

Lütfen. Söyleyin bana, bunun için koda neyin eklenmesi (eklenmesi) gerektiğini kim bilebilir?

 
rid >> :

Yine de. Tüm göstergenin artı (veya eksi, nokta değil) bölgesinde çizilmesine ihtiyacım var.

Lütfen. Söyleyin bana, bunun için koda neyin eklenmesi (eklenmesi) gerektiğini kim bilebilir?

IMHO, ihtiyacınız olan şey bir sigmoid içinde bir sarıcı. Tampon 0'dan 1'e kadar değerlere sahip olacaktır.

 for ( int i = 0 ; i < nLimit ; i + + )
      ExtForceBuffer [ i ] = Volume [ i ] *
( iMA ( NULL , 0 , ExtForcePeriod , 0 , ExtForceMAMethod , ExtForceAppliedPrice , i ) -
iMA ( NULL , 0 , ExtForcePeriod , 0 , ExtForceMAMethod , ExtForceAppliedPrice , i + 1 ) ) ;

//заменяем на 

for ( int i = 0 ; i < nLimit ; i + + )
{
         ExtForceBuffer [ i ] = Volume [ i ] *
   ( iMA ( NULL , 0 , ExtForcePeriod , 0 , ExtForceMAMethod , ExtForceAppliedPrice , i ) -
   iMA ( NULL , 0 , ExtForcePeriod , 0 , ExtForceMAMethod , ExtForceAppliedPrice , i + 1 ) ) ;

   ExtForceBuffer [ i ] = Sigmoid ( ExtForceBuffer [ i ] ) ;
}

//...

double Sigmoid ( double x )
{
   double value = MathExp ( x ) ;
   return ( value / ( 1 + value ) )
}
 

Teşekkürler TheXpert! Şimdi deneyeceğim.

//zhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzh'

Her şey yolunda gitti!

 

Hepinize iyi günler. İlk Uzman Danışmanımı yapmak istiyorum ama kodu nasıl yazacağımı bilmiyorum. MA'da işlemler açılır. Fiyat MA'ya yukarıdan dokunursa, satın alın. Aşağıdaysa, oturdu. Bu durumda, MA'nın eğimi dikkate alınmalıdır. MA'nın eğimi ve bir siparişin açılması tek yönlü olmalıdır. Sayesinde.

 
Shu писал(а) >>

araştırma eğlencelidir! hatta faydalıdır. hem beyin hem de deneyim için. hoşgeldiniz ve saygılar.

Ancak, daha karmaşık algoritmalar uygulayabiliyorsanız ve migrenden kurtulmak istiyorsanız, bunu daha kolay yapın. tüm bisikletler ve motosikletler zaten bizden önce icat edildi (üzeri çizildi) - tüm siparişleri dizinize (belki birden fazla) yönlendirin ve bu dizide kalbinizi memnun eden herhangi bir manipülasyon yapın. Herhangi bir kritere göre sıralama yapmak istiyorsanız, silmek istiyorsanız (bilet arkadaşınızdır), değiştirmek istiyorsanız - zararı durdur/kar al için toplu değişiklikler yapmak uygun, isterseniz yeni siparişler oluşturun.

ps (bir dışarı). yaratıcılığınızı ciddiye almaya karar verirseniz, her an (milisaniye) DC ile bağlantınızın kopabileceğini unutmayın. sorun değil, ancak "anlık" bir sinyaliniz varsa, o zaman bu sinyaldeki siparişleri kapatmaya başlarken bu anı dikkate alın. ideal olarak genel olarak - uzmanın acil olarak kapatılmasından/açılmasından sonra bile, belirli emirleri kapatma ihtiyacını görebilir (bu durumda). ve onları kapattı. en azından bir sonraki tikte. .

sadece bir "oyuncak" Uzman Danışman ise, bu komplikasyonların hiçbirine gerek yoktur. bununla birlikte, halka açık olarak satılan "kaselerin" çoğu hi.i şeklindedir. - oyuncaklara benzer..

Dizilerden pek anlamam. Ama ikinci düşünce - eğer uzman kapanış sinyalini kaçırırsa, yine de kapatması gerektiği için aptal olabilir - hoşuma gitti. Ama işte bunu nasıl yapacağınız...

 

Tünaydın.

Uzman Danışman, fiyat hareketini takip ederek limitli alış limiti emirleri verir. = Mesafe.

FİYAT yükseldikçe fazladan (en uzaktaki) siparişlerin silinmesine ihtiyacım var.

Yapılmış. Ancak bir nedenden dolayı silmek işe yarıyor. yanlış! İlk sipariş normal olarak silinir. Sonra tam tersine fiyata en yakın olanlar kaldırılıyor! Sonra dururlar veya "fenerden" çıkarılırlar ve günlük 4108 hatası (bilinmeyen bilet) oluşturur. Sonra biraz. zaman normal olarak silinir.

Görünüşe göre burada bir yerde siparişlerin sayımını düzgün bir şekilde organize etmenin önemli olduğu söylendi.

 //жжжжж Удаление лишних байлим ордеров жжжжжжжжж
if ( NumberOfOrders ( NULL , OP_BUYLIMIT , MAGIC ) > КоличествоОрдеров  )  {
    //если ордеров больше заданного значения 
//for (int z = OrdersTotal() - 1; z >= 0; z -- )  {//перебираем с "конца"
  for ( int z = 0 ;    z < OrdersTotal ( ) ;        z + + )  { //перебираем с начала         
  if ( OrderSelect ( z , SELECT_BY_TICKET , MODE_TRADES ) )          { //перебираем по тикету           
   if ( OrderSymbol ( ) = = Symbol ( ) & & OrderType ( ) = = OP_BUYLIMIT ) { //выбираем байлимиты   
     if ( OrderOpenPrice ( ) < ( Ask - ( КоличествоОрдеров * Дистанция ) * Point ) ) {
     //если расстояние от тек. цены больше заданного
   
   OrderDelete ( OrderTicket ( ) , Yellow ) ;   //  return(0);    //удаляем самый дальний
            } } } } } 

Yine de. Emirlerin sıralanmasının "sondan" mı yoksa baştan mı organize edildiği önemli değildir. Sonuç yanlış.

Görünüşe göre kod en basiti!

Burada yanlış olan ne olabilir? Lütfen. söylemek!

Neden: