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

 
Renk MA Orlova.
 
teşekkürler
 

Henüz ticaret işlevleriyle uğraşmak benim için zor, ancak programlamayı biraz biliyorum

bu tür bir algoritmayı sizin yardımınızla uygulamak benim için iyi olur:

if (satın alma koşulu)

açık sipariş varsa

bu sipariş, satın alma koşulunun tetiklendiği bir çift içinse

eğer satılıksa

kapat onu

satın almak için açık.

Ah yazmama yardım et, şimdiden yoruldum. Hala anlayamadığım çok şey okudum.

 
frxmax :

Alım satım fonksiyonlarıyla uğraşmak benim için zor ama programlamayı biraz biliyorum

bu tür bir algoritmayı sizin yardımınızla uygulamak benim için iyi olur:

1. if (satın alma koşulu)

2. açık sipariş varsa

2.1. bu sipariş, satın alma koşulunun tetiklendiği bir çift içinse

2.2. eğer satılıksa

3. kapat

4. satın almak için açın.

Ah yazmama yardım et, şimdiden yoruldum. Hala anlayamadığım çok şey okudum.


1. Satın alma koşulu nedir?

2. Terminalin piyasa emirlerinde çevrim yapılması

2.1. Döngüde (madde 2), seçilen siparişin hangi çiftin açık olduğunu kontrol ediyoruz ve eğer doğru ise, o zaman ...

2.2. Seçilen siparişin türü ve Satış olup olmadığı kontrol ediliyor...

3. Seçilen siparişi kapatın

4. Bir satın alma siparişi açın

Yoksa tam koda mı ihtiyacınız var? O zaman bu artık bir yardım değil, bir zaaf... Yine de... Olmazsa, yazarım, sorunları bilirim...

 

Evet yazdım ve yardım ettim. ve bu konuda "herkesin kendi doğruları vardır".

işte benim versiyonum

 if (LoCurent>LoPrevious && FtCurent>FtPrevious)
      {
       ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,Bid-StopLoss* Point ,Bid+TakeProfit* Point , "Buy" , 1111 , 0 , Green );
       if (ticket> 0 )
          {
           if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "BUY order opened : " ,OrderOpenPrice());
          }
         else Print ( "Error opening BUY order : " , GetLastError ()); 
         return ( 0 ); 
      }
// условие ПРОДАЖИ 
   if (LoCurent<LoPrevious && FtCurent<FtPrevious)
       {
        ticket= OrderSend ( Symbol (),OP_SELL,Lot,Bid, 3 ,Ask+StopLoss* Point ,Ask-TakeProfit* Point , "Sell" , 2222 , 0 , Red );
         if (ticket> 0 )
           {
             if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "SELL order opened : " ,OrderOpenPrice());
           }
         else Print ( "Error opening SELL order : " , GetLastError ()); 
         return ( 0 ); 
        }    
     return ( 0 );
 // ЗАКРЫТИЕ СДЕЛОК
 for (cnt= 0 ;cnt<total;cnt++)
     {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
       if (OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()== Symbol ())   // check for symbol
        {
         if (OrderType()==OP_BUY)   // long position is opened
           {
           if (LoCurent<LoPrevious || FtCurent<FtPrevious || LoCurent<- 30 || LoPrevious<- 30 )
               {
                 OrderClose(OrderTicket(),OrderLots(),Bid, 3 , Violet ); // close position
                 return ( 0 ); // exit
               }
           } else
               {
                 if (LoCurent>LoPrevious || FtCurent>FtPrevious || LoCurent> 30 || LoPrevious> 30 )
                  {
                     OrderClose(OrderTicket(),OrderLots(),Ask, 3 , Violet ); // close position
                     return ( 0 ); // exit
                  }
                }
     }
        
     
 }
 

}

İşte KONDOR'un başka bir versiyonu

 if (LoCurent<LoPrevious)
     if (CalculateOrders( Symbol (),OP_SELL)> 0 ) Ord_Close( Symbol (),OP_SELL);
     if (total< 1 )
     Ticket(OP_BUY);          }

//-----------------------
int CalculateOrders( string simbol, int type)
  {
   int count= 0 ;
//----
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false) break ;
       if (OrderSymbol()==simbol)
        {
         if (OrderType()==type)  count++;
        
        }
     }
     
 return (count);
  }

//---------------------

void Ord_Close( string simb, int type) {   double price;
   
   if (type==OP_BUY)  price=MarketInfo(simb, MODE_BID); else
   if (type==OP_SELL) price=MarketInfo(simb, MODE_ASK);

   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false)         break ;
       if ( OrderSymbol()!=simb || OrderMagicNumber()!= 111 ) continue ;
       //---- check order type 
       if (OrderType()==type)
        {  OrderClose(OrderTicket(),OrderLots(),price, 3 , White );   break ;  }
        
        
     }   
     
     
 } 
//-----------------------------

int Ticket( int op){
       double pp = MarketInfo( Symbol (), MODE_POINT);
       double pBid = MarketInfo( Symbol (), MODE_BID);
       double pAsk = MarketInfo( Symbol (), MODE_ASK); 
       double open_price;
       double T;
       color col= NULL ;
       int mn= 0 ;
      
   if (op== 0 ) {open_price=pAsk; col= Blue ; T=pAsk+TakeProfit*pp;}
   if (op== 1 ) {open_price=pBid; col= Red ;  T=pBid-TakeProfit*pp;}
   int res= OrderSend ( Symbol (),op,Lot,open_price, 1 ,Bid-StopLoss* Point ,Bid+TakeProfit* Point , NULL ,mn, 0 ,col); 

   return (res);               
 }
 

EA, bir sipariş açma koşulları yerine getirildiğinde, her fiyat değişikliğinde hala alım satım açar.

Emirleri ters sinyalle kapatmayla ilgili başka bir sorun daha vardır (bir satış sinyali alındığında bir satın alma emrini kapsar ve bunun tersi de geçerlidir).

 
frxmax :

EA, bir sipariş açma koşulları yerine getirildiğinde, her fiyat değişikliğinde hala alım satım açar.

Emirleri ters sinyalle kapatmayla ilgili başka bir sorun daha vardır (bir satış sinyali alındığında bir satın alma emrini kapsar ve bunun tersi de geçerlidir).

Farklı yapabilirsiniz. TK yazın (Sergeev ve Composter tarafından istendiği gibi). Ve sonra çalışan bir kod alın. Aslında her sorunun bir çözümü var. Ve bir kez forumda ortaya konmadı.
 

Selam millet. Forex'i duydum ama ayrıntılara girmedim, C programlamanın temellerini biliyorum.

Gelir getirecek Forex robotlarını nasıl programlayacağımı öğrenmek istiyorum.

Zor mu? bundan para kazanmak gerçekten mümkün mü? Minimum başlangıç nedir. Ve bunun için nelerin araştırılması gerekiyor?

 
Vinin :

Farklı yapabilirsiniz. TK yazın (Sergeev ve Composter tarafından istendiği gibi). Ve sonra çalışan bir kod alın. Aslında her sorunun bir çözümü var. Ve bir kez forumda ortaya konmadı.
İşe ilişkin görev tanımlarını doğru anlıyor muyum?
 
frxmax :

1. EA, bir sipariş açma koşulu karşılanırsa, her fiyat değişikliğinde hala alım satım açar.

2. Emirleri ters sinyalle kapatmayla ilgili başka bir sorun (bir satış sinyali alındığında bir satın alma emrini kapsar ve bunun tersi de geçerlidir).

Koşul:

1. Sipariş açma (Satın Al) için bir koşul varsa; Açık bir sipariş (Satın Al) yoksa, bir Satınalma siparişi açın. Benzer şekilde Satmak için

2. Alış emri açmak için bir koşul varsa, açık bir Satış emri varsa Sell'i kapatın.

Böylece şunu elde ederiz:

1. Bir Satın Alma emri açmak için bir sinyal varsa ->>

2. Açık bir Satış emri varsa ->
2.1 Kapatın.

3. Açık Satın Alma siparişi yoksa ->
3.1 Açın.

Benzer şekilde Satmak için

Neden: