[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 389

 
Dimka-novitsek :
Danışmanı başlatırken, hiçbir şey, bu kontrol edilecek, böylece daha sonra her onay işaretiyle yeni siparişler açılmayacak
 OrderSelect ( tiket,SELECT_BY_TICKET, MODE_TRADES );
if (OrderSymbol()== Symbol ())
{
   if (OrderMagicNumber( )== 1000 ||OrderMagicNumber( )== 2000 )
   {
      i= OrdersTotal () ;
      if (i< 2 )
      {
         tiket= OrderSend ( Symbol (), OP_BUYSTOP, volume*A, price +otstup* Point , Point * 3 , R1, PRICE_OPEN +takeprofit* Point +otstup, "OP_BUYSTOP" , 1000 , expiration, Red );
         Alert ( "OP_BUYSTOP" , GetLastError ( ));
         tikett= OrderSend ( Symbol (), OP_SELLSTOP, volume*A, price -otstup* Point , Point * 3 ,R2, PRICE_OPEN -takeprofit* Point -otstup, "OP_SELLSTOP" , 2000 , expiration, C'0,128,255' );
         Alert ( "OP_SELLSTOP" , GetLastError ( ));
         i= OrdersTotal ();
      }
   }
}

bu sizin kodunuz, herhangi bir değişiklik yapmadınız

tiket sırasını seçip bu sembol ve bu büyünün sırasını seçerseniz siparişlerin verileceğini yazmışsınız ve toplamda 2'den az sipariş var

 
Teşekkürler!! Üzgünüm, saçma sapan yazdım.
 
drknn :


Kod olmadan söylemek zor. Expert Advisor'ın dört haneli, demo hesabının ise beş haneli olması oldukça olasıdır. Ayarlarda, örneğin, 10 puanlık bir stop-loss siparişi varsa, beş basamakta, dört basamakta 1 nokta ile aynı mesafe olduğunu anlarsınız. Aynı zamanda, durdurma emirlerini ayarlamak için izin verilen minimum mesafe, diyelim ki = 3 puansa, beş basamakta üç değil otuz puan olacaktır. Sunucunun, beş basamaklı bir işaret üzerinde 10 puanlık bir durma ile sipariş verme komutunu basitçe reddedeceği açıktır.

Her ne kadar başka bir sebep de olabilir. Görüyorsunuz, insanlara sordunuz, diyorlar ki, arabanız neden çalışmıyor? İnsanlar kaputu açmadan ve arabanın çalıştırma girişimlerine nasıl tepki verdiğini dinlemeden nedenini söyleyemeyecek ...

EURUSD'de başlatılan strateji test cihazı, yürütme için birkaç para biriminde başlatmaya çalıştı, EURUSD, GBPUSD, USDJPY - hiçbir yerde çalışmıyor. Alım/satım emri gönderirken Point kullandım, bu yüzden tüm işaretler için çalışması gerekir. Hepsinden önemlisi, testçinin sonuçları neden gösterdiği belli değil, ancak danışman demo hesabında pozisyon açmıyor. Bu hangi durumlarda olabilir?

Her durumda, cevap için teşekkürler, akşama kodu göndereceğim.

 
Dimka-novitsek :


Kusura bakmayın buraya saçma sapan şeyler yazdım, mümkünse bana tam olarak nerede olduğumu gösterin.

Tümünde :)))))))))))))))))))

Hadi baştan başlayalım:

 //+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int       tiket, tikett;
int       i= 0 , R1= 0 , R2= 0 , A= 1 ;
double    volume= 0.1 ;
double    price= PRICE_OPEN ;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;

int start()
{
//----

   OrderSelect (tiket, SELECT_BY_TICKET, MODE_TRADES);
   if (OrderSymbol()== Symbol ()) {
       if (OrderMagicNumber()== 1000 || OrderMagicNumber()== 2000 ) {
         i= OrdersTotal ();
         if (i< 2 ) {
            tiket= OrderSend ( Symbol (), OP_BUYSTOP, volume*A, price+otstup* Point , Point * 3 , R1, PRICE_OPEN +takeprofit* Point +otstup, "OP_BUYSTOP" , 1000 , expiration, Red );
             Alert ( "OP_BUYSTOP" , GetLastError ( ));
            tikett= OrderSend ( Symbol (), OP_SELLSTOP, volume*A, price-otstup* Point , Point * 3 ,R2, PRICE_OPEN -takeprofit* Point -otstup, "OP_SELLSTOP" , 2000 , expiration, C'0,128,255' );
             Alert ( "OP_SELLSTOP" , GetLastError ( ));
            i= OrdersTotal ();
            }
         }
      }

//----
return ( 0 );
}
//+------------------------------------------------------------------+

Başlangıçta, iki değişken sıfıra başlatılır:

 int       tiket, tikett;

Ardından, ilk kod satırıyla bilete göre bir sipariş seçiyoruz:

 OrderSelect (tiket, SELECT_BY_TICKET, MODE_TRADES);

burada bilet değişkeni sıfırdır. Onlar. sıfır biletli bir sipariş seçmeye çalışmak. Aynı zamanda sertifikayı bile okumadılar çünkü. bilete göre seçerken, havuz parametresi yok sayılır ve yine de MODE_TRADES'i belirtirsiniz. Bu bir hata değildir - bu durumda bu, basitçe yok sayılan fazladan bir parametredir. Buna göre, sıfır biletli bir sipariş seçilmedi - mevcut değil...

Ayrıca, her şey iç içe geçmiş koşullarda gider; ilk şart:

 if (OrderSymbol()== Symbol ())

... eğer seçilen sıranın sembolü mevcut grafiğin sembolü ile eşleşiyorsa... Ve herhangi bir emir seçilmediği için hiçbir şey yapmadan start()'tan çıkışa güvenle ulaşırız.

Sizi temin etmeye cesaret ediyorum ... Ayrıca, orada sizin için daha az ilginç değil, ama ... ortalığı karıştırmak ilginç değil.

Halihazırda açık pozisyonları arayarak veya bekleyen emirleri belirleyerek başlayın.

İyi şanlar.

 
ilunga :

bu sizin kodunuz, herhangi bir değişiklik yapmadınız

tiket sırasını seçip bu sembol ve bu büyünün sırasını seçerseniz siparişlerin verileceğini yazmışsınız ve toplamda 2'den az sipariş var


Ama hayır, bu doğru, ikiden az emir başlattığınızda, bekleyen iki emir verilir ve bir sonraki tıklamada iki tane olur ve hiçbir şey olmaz.

Kafamda bir kriz olmalı.

 
Dimka-novitsek :


Ama hayır, bu doğru, ikiden az emir başlattığınızda, bekleyen iki emir verilir ve bir sonraki tıklamada iki tane olur ve hiçbir şey olmaz.

Kafamda bir kriz olmalı.

Krizin olduğu yerde seni adım adım resmettim zaten...
 
Sersad :

EURUSD'de başlatılan strateji test cihazı, yürütme için birkaç para biriminde başlatmaya çalıştı, EURUSD, GBPUSD, USDJPY - hiçbir yerde çalışmıyor. Alım/satım emri gönderirken Point kullandım, bu yüzden tüm işaretler için çalışması gerekir. Hepsinden önemlisi, testçinin sonuçları neden gösterdiği belli değil, ancak danışman demo hesabında pozisyon açmıyor. Bu hangi durumlarda olabilir?

Her durumda, cevap için teşekkürler, akşama kodu göndereceğim.


Bu sadece Puan değerinin farklılık gösterdiği noktadır.

 
PapaYozh :


Bu sadece Puan değerinin farklılık gösterdiği noktadır.

Puan değeri, tekliften teklife farklılık gösterir, ancak özü, herhangi bir sayıda ondalık basamaklı tüm teklifler için aynıdır - bu, minimum fiyat adımıdır.

Bu yüzden sonuçta stop loss için kullandığım şey, örneğin Ask-0.003 değil Ask-30*Point, drknn'nin yorumunun tavsiyesini ortadan kaldırıyor.

""... Danışmanın dört haneli yazılmış olması ve demo hesabının beş haneli olması oldukça olasıdır. Ayarlarda, örneğin, 10 puanlık bir stop-loss siparişi varsa, beş basamakta, dört basamakta 1 nokta ile aynı mesafe olduğunu anlarsınız. Aynı zamanda, durdurma emirlerini ayarlamak için izin verilen minimum mesafe, diyelim ki = 3 puansa, beş basamakta üç değil otuz puan olacaktır. Açıktır ki, beş haneli bir sunucuda, 10 puanlık bir stop ile sipariş verme komutunu basitçe reddedecektir...""

double Point - Mevcut enstrümanın teklif para birimi cinsinden puan boyutu .
 

Söylemek.

İzin verilen minimum zararı durdur / kârı al seviyesinin değerini puan olarak gösteren basit bir komut dosyası yazdım.

int başlangıç()
{
int min=MarketInfo( Symbol() ,MODE_STOPLEVEL);
uyarı(dk);
dönüş(0);
}

Çıkışlar sıfır. Bu ayar için varsayılan değer bu mu?

 

fx_max :

İzin verilen minimum zararı durdur / kârı al seviyesinin değerini puan olarak gösteren basit bir komut dosyası yazdım.


int min=MarketInfo(Symbol(),MODE_STOPLEVEL);

Çıkışlar sıfır. Bu ayar için varsayılan değer bu mu?


Numara