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

 
Evet, bir gösterge olmadan hemen bir danışman yazmadım, hiç gösterge yok, alış ve satış için verilen siparişlerde aptalca çalışıyor vb --- ve sonra değiştirdiğim dönemler danışmanların testçisi ve sonuç hala hiçbir şey anlamıyorum
 
5drakon :
Evet, bir gösterge olmadan hemen bir danışman yazmadım, hiç gösterge yok, alış ve satış için verilen siparişlerde aptalca çalışıyor vb --- ve sonra değiştirdiğim dönemler danışmanların testçisi ve sonuç hala hiçbir şey anlamıyorum

Danışmanın kendisi olmadan hiçbir şey söylenemez. Sadece bir tahmin
 

Ticarete başlamak için Ilan6 ile ne yapmalıyım? Hangi miktarla çalışmaya başlar ve sentlerle çalışır mı?

 
5drakon :
Evet, bir gösterge olmadan hemen bir danışman yazmadım, hiç gösterge yok, alış ve satış için verilen siparişlerde aptalca çalışıyor vb --- ve sonra değiştirdiğim dönemler danışmanların testçisi ve sonuç hala hiçbir şey anlamıyorum

Evet, kodun kendisine bakmanız gerekiyor. Ne de olsa, emirleri açıp kapattığı hesaplamalara dayanarak bir tür stratejisi var mı?
 

Söyle bana, hata nerede? Yüzgecimizde satış yapmak için bir piyasa emri varsa gereklidir. enstrümanı kapatın ve herhangi bir alış emri yoksa bir alış emri açın. Kapatma ile burada her şey yolunda, ancak onları tek başına açmıyor, her tikte.

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

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------

 
kolyango :

Söyle bana, hata nerede? Yüzgecimizde satış yapmak için bir piyasa emri varsa gereklidir. enstrümanı kapatın ve herhangi bir alış emri yoksa bir alış emri açın. Kapatma ile burada her şey yolunda, ancak onları tek başına açmıyor, her tikte.

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

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------


Yoksa böyle yapmak daha mı iyi? Sonuçta satış emri olmazsa alış da olmaz.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

 

deyim yürütme kuralı için


Kontrolü for deyimine aktarırken, Expression_1 yürütün. for ifadesinin Koşul doğru olsa da: kontrolü döngü gövdesinin ilk deyimine aktarın ve döngü gövdesinin tüm deyimlerini yürüttükten sonra, Koşulun doğruluğunu kontrol etmek için Expression_2'yi yürütün ve kontrolü başlığa aktarın. for ifadesinin Koşul yanlışsa, o zaman: kontrolü for ifadesini izleyen ifadeye aktarın.

Yani bana şunu söylüyorsunuz: bir onay işareti geldi, for operatörünün koşulu doğru, kontrol daha ileri aktarıldı - tüm bunlar tek bir onay sırasında gerçekleşecek, yani. tüm bu ifadeler, 1 kene veya değil varış anında yürütülecektir.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

Veya bu tikte hangi operatörler yürütülecek? Yukarıdakilerin tümü veya bir kısmı bir sonraki kene sırasında mı yürütülecek? Açıklamak...

 
kolyango :

deyim yürütme kuralı için


Kontrolü for deyimine aktarırken, Expression_1 yürütün. for ifadesinin Koşul doğru olsa da: kontrolü döngü gövdesinin ilk deyimine aktarın ve döngü gövdesinin tüm deyimlerini yürüttükten sonra, Koşulun doğruluğunu kontrol etmek için Expression_2'yi yürütün ve kontrolü başlığa aktarın. for ifadesinin Koşul yanlışsa, o zaman: kontrolü for ifadesini izleyen ifadeye aktarın.

Yani bana şunu söylüyorsunuz: bir onay işareti geldi, for operatörünün koşulu doğru, kontrol daha ileri aktarıldı - tüm bunlar tek bir onay sırasında gerçekleşecek, yani. tüm bu ifadeler 1 kene geldiğinde veya gelmediğinde yürütülecektir.

Veya bu tikte hangi operatörler yürütülecek? Yukarıdakilerin tümü veya bir kısmı bir sonraki kene sırasında mı yürütülecek? Açıklamak...


start() işlevi, ilk onay işareti geldiğinde yürütülür. İşlev çalışırken başka onay işaretleri alınırsa, bunlar atlanır.

Başlatma işlevi, içinde gömülü olan mantığa göre tamamen yürütülecektir.

 
kolyango :

deyim yürütme kuralı için


Kontrolü for deyimine aktarırken, Expression_1 yürütün. for ifadesinin Koşul doğru olsa da: kontrolü döngü gövdesinin ilk deyimine aktarın ve döngü gövdesinin tüm deyimlerini yürüttükten sonra, Koşulun doğruluğunu kontrol etmek için Expression_2'yi yürütün ve kontrolü başlığa aktarın. for ifadesinin Koşul yanlışsa, o zaman: kontrolü for ifadesini izleyen ifadeye aktarın.

Yani bana şunu söylüyorsunuz: bir onay işareti geldi, for operatörünün koşulu doğru, kontrol daha ileri aktarıldı - tüm bunlar tek bir onay sırasında gerçekleşecek, yani. tüm bu ifadeler 1 kene geldiğinde veya gelmediğinde yürütülecektir.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

Veya bu tikte hangi operatörler yürütülecek? Yukarıdakilerin tümü veya bir kısmı bir sonraki kene sırasında mı yürütülecek? Açıklamak...


Anladım. Koşul doğruysa tüm ifadeler yürütülür.
 
Ve satın almadan önce bu kodda zaten satın alma emrimiz olup olmadığını nasıl kontrol edebiliriz? Satın alınacak herhangi bir piyasa emri yoksa, ancak o zaman satın alma işlemini gerçekleştirin?
Neden: