//+------------------------------------------------------------------+//+------------------------------------------------------------------+#import "kernel32.dll"int _lopen (string path, int of);
int _lcreat (string path, int attrib);
int _llseek (int handle, int offset, int origin);
int _lread (int handle, string buffer, int bytes);
int _lwrite (int handle, string buffer, int bytes);
int _lclose (int handle);
#importint start()
{
string text ="222222";//текст который собираемся записать или перезаписать в файлstring pach ="D:\FILE.txt";//путь куда записываем файл или перезаписываем
WriteFile("D:\FILE.txt", text);//выполнение
}
//+------------------------------------------------------------------+//| записать содержимое буфера по указанному пути |//+------------------------------------------------------------------+void WriteFile (string path, string buffer)
{
int count=StringLen(buffer); //Возвращает число символов в строке. int result;
int handle=_lopen (path,1);
if(handle<0) //если файл еще не создан то создаем
{
handle=_lcreat (path,0);
result=_lclose (handle);
}
handle=_lopen (path,1); //открываем
result=_llseek (handle,0,0); //ставим указатель
result=_lwrite (handle,buffer,count); //записываем
result=_lclose (handle); //закрываем файл
}
//+------------------------------------------------------------------+
簡単なインジケータを書きました。以下はそのコードです。
バッファは1つしか入っていない。指標となる値はdouble 型である。Expert Advisorでは、インジケーターの値を取得し、フィルターとしてトレードに適用することにしました。
ここでは、最後に形成されたバーで、このインジケータのバッファの簡単な関数コールを書きました。
テスターでは、スロープの 値が間違って返される。なぜ?タイプは正しいです。通話も正しい。インジケーターは全く正常に動作しています。テスターでのログ記録と、実際の現在の市場からのログをご紹介します。
なぜ、2147483647という 数字が常に返されるのですか?
簡単なインジケータを書きました。以下はそのコードです。
バッファは1つだけです。指標となる値はdouble 型である。Expert Advisorでは、インジケータの値を取得して、フィルタとしてトレードに適用することにしました。
ここでは、最後に形成されたバーで、このインジケータのバッファの簡単な関数コールを書きました。
テスターのスロープ 値が正しくない。なぜ?タイプは正しいです。通話も正しい。インジケーターは全く正常に動作しています。テスターでのログ記録と、実際の現在の市場からのログをご紹介します。
なぜ、2147483647という 数字が常に返されるのですか?
インジケーターをリファイン
問題はインジケーターにあるようです。
その通りだ...でも、再計算が必要なのはバーの数 だけなんですよね...。この場合、なぜ正しい値を取得する方法がないのか不思議です。
この行をコメントアウトすると、すべて正常に動作し、0本目のバーから計算が修正されます。
しかし 前回のバリエーションでは、プライミング時に、適切な値を出力していました。しかし、フクロウは十分な価値を得られなかった。なぜ?
その通りだ...ただ、再計算されるのはバーの数だけですが...。なぜこの場合、正しい値を得る方法がないのか不思議です。
この行をコメントアウトすると、すべてが正常に動作し、バー0からの計算が修正されます。
しかし 以前のバリエーションでは、適切な値を出力していました。しかし、フクロウの撮影は十分ではありません。なぜ?
ビジュアライゼーション・モードで確認しているようですが
ビジュアライゼーション・モードで確認しているようですが
ええ、だから何?
バグを見つけるのを手伝ってくれ、アクションもエラーもない。もしかして、ライブラリが足りない?
私のシステム:MT4、Build 451。
Windows 7 Home Baseです。
エラーを見つけるのに役立つ、アクションもエラーもない。もしかして、ライブラリが足りない?
私のシステム:MT4、Build 451。
Windows 7 Home Baseです。
すべてのオープントレードの中から最小ロットを選ぶには?
int i, ot = OrdersTotal(); double min=0; int min_ticket=0; for(i=0;i<ot;i++) { if(!OrderSelect(i,SELECT_BY_POS)) continue; if(OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue; if(i==0||min> OrderLots()) {min = OrderLots(); min_ticket=OrderTicket();} }