Valeriy Yastremskiy # : İlk olarak, döngüden önceki fark 1000'dir. Döngüde, açılış fiyatı eksi cari fiyat modulo farktan küçükse, fark alınan değere eşittir ve bilet bir değişkende saklanır.
İçeride, ben de aynı şeyi düşündüm) Ama bir şeyler ters gitti. Güncel fiyata en yakın emrin açılış fiyatının online olarak nasıl takip edileceğine dair bir örnek verebilir misiniz? Ya da belki onları karşılaştırın ve en düşük fiyatı arayın)
İçeride, ben de aynı şeyi düşündüm) Ama bir şeyler ters gitti. Güncel fiyata en yakın emrin açılış fiyatının online olarak nasıl takip edileceğine dair bir örnek verebilir misiniz? Ya da belki onları karşılaştırın ve en düşük fiyatı arayın)
Buna bir bak:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 05.06.2008 |//| Описание : Возвращает тикет ближайшей к рынку позиции по цене открытия. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int TicketNearPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
double mi, p;
int i, k= OrdersTotal (), pp= 0 , ti= 0 ;
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
p=MarketInfo(OrderSymbol(), MODE_POINT);
if (p== 0 ) if ( StringFind (sy, "JPY" )< 0 ) p= 0.0001 ; else p= 0.01 ;
if (pp== 0 || pp> MathAbs (OrderOpenPrice()-mi)/p) {
pp= MathAbs (OrderOpenPrice()-mi)/p;
ti=OrderTicket();
}
}
}
}
}
}
return (ti);
}
MODE_SPREAD ile çarpmaya gerek yok -Puan cinsinden yayılma
Kontrol edebilirsin
ve bunu yap
İyi günler Makar!!!
Burada, minimum ve maksimum siparişleri kapatma mantığının net olacağı kodun iki bölümü bulunmaktadır. Kelimelerde kulağa şöyle geliyor: "Siparişlerin ızgarasından çekilen miktar belirli bir seviyeyi aşarsa, ızgaradaki minimum ve maksimum siparişleri belirtilen seviyeden az olmayan bir kârla kapatırız" .
Sonraki "Dezavantaj belirtilen seviyenin altına düşerse, zararlı tüm siparişler için kârlı tüm siparişlerin ortalamasını alma ilkesine dönüyoruz"
Sonraki "Dezavantaj belirtilen seviyenin altına düşmediyse, belirli bir kâra ulaşıldığında sonraki minimum ve maksimum siparişleri tekrar kapatın"
Şimdi danışman, düşüş aşılırsa, minimum kâr ve maksimum siparişler yerine getirilirse, danışmanın ilk çifti olması gerektiği gibi kapattığını, ancak geri kalan her şeyi aynı fiyatta, kâr hesaplamasını göz ardı ederek anlar.
Anladığım kadarıyla, zamanında durması için OrderClose () işleviyle uğraşmanız gerekiyor . Şimdiden teşekkür ederim!!!!
if (CountTrade() < MaxOrders)
{
int order_type = FindLastOrderType();
if (order_type == OP_BUY)
{
price = FindLastOrderPrice(OP_BUY);
if (Ask<= price - Step()* Point )
{
lastlot = NormalizeDouble (GetMinLotOrder()* MathPow ( MultiplierParameter, OrdersTotal ()), 2 );
ticket = OrderSend ( Symbol (), OP_BUY, lastlot, Ask, slip, 0 , 0 , "Групповой ордер" , Magic, 0 , Blue);
if (ticket < 1 )
Print ( "Ошибка ордера на покупку" );
ModifyOrders(OP_BUY);
}
}
if (order_type == OP_SELL)
{
price = FindLastOrderPrice(OP_SELL);
if (Bid>= price + Step()* Point )
{
lastlot = NormalizeDouble (GetMinLotOrder()* MathPow ( MultiplierParameter, OrdersTotal ()), 2 );
ticket = OrderSend ( Symbol (), OP_SELL, lastlot, Bid, slip, 0 , 0 , "Групповой ордер" , Magic, 0 , Red);
if (ticket < 1 )
Print ( "Ошибка ордера на продажу!" );
ModifyOrders(OP_SELL);
}
}
}
double op = CalculiteProfit();
if (op > ProfitMinMaxOrders && Drawdown > DrawdownClosingMinMaxOrders)
{
ClosseMinMaxOrders();
}
//+----------------------------------------------------------------------------+//| Калькуляция профита максимального и минимального ордера в сетке |//+----------------------------------------------------------------------------+double CalculiteProfit()
{
double AmountMinMaxProfit = 0 ;
for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
AmountMinMaxProfit = GetProfitMinOrder() + GetProfitMaxOrder();
}
}
}
}
return (AmountMinMaxProfit);
}
//+----------------------------------------------------------------------------+//| Закрытие минимального и максимального ордеров |//+----------------------------------------------------------------------------+void ClosseMinMaxOrders()
{
int slipp = ( int ) MarketInfo( _Symbol , MODE_SPREAD )* 2 ;
for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY)
{
if (OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Bid, slipp) && OrderClose(GetTicketMaxOrder(), FindLastLots(), Bid, slipp))
Print ( "Максимальный и минимальный ордера на покупку успешно закрыты!" );
elsePrint ( "Не удалось закрыть максимальный и минимальный ордера на покупку!" , GetLastError ());
}
if (OrderType() == OP_SELL)
{
if (OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Ask, slipp) && OrderClose(GetTicketMaxOrder(), FindLastLots(), Ask, slipp))
Print ( "Максимальный и минимальный ордера на продажу успешно закрыты!" );
elsePrint ( "Не удалось закрыть максимальный и минимальный ордера на продажу!" , GetLastError ());
}
}
}
}
}
Tünaydın! İlkel soru için çok üzgünüm, ancak kiracı danışmanının bağlantılarını nerede bulabilirim? Veya danışmanı satın alan/kiralayan kişiyle nasıl iletişime geçilir?
Oleksandr Nozemtsev # : Tünaydın! İlkel soru için çok üzgünüm, ancak kiracı danışmanının bağlantılarını nerede bulabilirim? Veya danışmanı satın alan/kiralayan kişiyle nasıl iletişime geçilir?
Mümkün değil. Ürün Tartışması sekmesinde bir diyalog kurabilirsiniz. Haberleri uygun sekmede yayınlayabilirsiniz.
İlk olarak, döngüden önceki fark 1000'dir. Döngüde, açılış fiyatı eksi cari fiyat modulo farktan küçükse, fark alınan değere eşittir ve bilet bir değişkende saklanır.
İçeride, ben de aynı şeyi düşündüm) Ama bir şeyler ters gitti. Güncel fiyata en yakın emrin açılış fiyatının online olarak nasıl takip edileceğine dair bir örnek verebilir misiniz? Ya da belki onları karşılaştırın ve en düşük fiyatı arayın)
İçeride, ben de aynı şeyi düşündüm) Ama bir şeyler ters gitti. Güncel fiyata en yakın emrin açılış fiyatının online olarak nasıl takip edileceğine dair bir örnek verebilir misiniz? Ya da belki onları karşılaştırın ve en düşük fiyatı arayın)
Buna bir bak:
ve düzelt
MODE_SPREAD ile çarpmaya gerek yok - Puan cinsinden yayılma
Kontrol edebilirsin
ve bunu yap
İyi günler Makar!!!
Burada, minimum ve maksimum siparişleri kapatma mantığının net olacağı kodun iki bölümü bulunmaktadır. Kelimelerde kulağa şöyle geliyor: "Siparişlerin ızgarasından çekilen miktar belirli bir seviyeyi aşarsa, ızgaradaki minimum ve maksimum siparişleri belirtilen seviyeden az olmayan bir kârla kapatırız" .
Sonraki "Dezavantaj belirtilen seviyenin altına düşerse, zararlı tüm siparişler için kârlı tüm siparişlerin ortalamasını alma ilkesine dönüyoruz"
Sonraki "Dezavantaj belirtilen seviyenin altına düşmediyse, belirli bir kâra ulaşıldığında sonraki minimum ve maksimum siparişleri tekrar kapatın"
Şimdi danışman, düşüş aşılırsa, minimum kâr ve maksimum siparişler yerine getirilirse, danışmanın ilk çifti olması gerektiği gibi kapattığını, ancak geri kalan her şeyi aynı fiyatta, kâr hesaplamasını göz ardı ederek anlar.
Anladığım kadarıyla, zamanında durması için OrderClose () işleviyle uğraşmanız gerekiyor . Şimdiden teşekkür ederim!!!!
Tünaydın! İlkel soru için çok üzgünüm, ancak kiracı danışmanının bağlantılarını nerede bulabilirim? Veya danışmanı satın alan/kiralayan kişiyle nasıl iletişime geçilir?
Mümkün değil. Ürün Tartışması sekmesinde bir diyalog kurabilirsiniz. Haberleri uygun sekmede yayınlayabilirsiniz.
Mümkün değil. Ürün Tartışması sekmesinde bir diyalog kurabilirsiniz. Haberleri uygun sekmede yayınlayabilirsiniz.
Teşekkür ederim!
Tünaydın.
İyi günler !!!
Sana başka bir fonksiyon verdim ... bir şey eklemene gerek yok
Ya da taşıyabilirsiniz...
Sana başka bir fonksiyon verdim ... bir şey eklemene gerek yok
Ya da taşıyabilirsiniz...
hiçbirşey değişmedi